class C3 {
public static int n = 0;
public int m = 0;
public C3() {
n++;
m++;
}
public void display() {
System.out.println(n + " " + m);}
}
}
Run Code Online (Sandbox Code Playgroud)
执行: -
C3 c1 = new C3();
c1.display();
C3 c2 = new C3();
c1.display();
c2.display();
Run Code Online (Sandbox Code Playgroud)
打印数字(输出)
1 1
2 1
2 1
Run Code Online (Sandbox Code Playgroud)
任何人都可以一步一步向我解释输出吗?我对第二行输出有点困惑,为什么m和n值都没有增加?也是在第3次输出为什么不从头开始?
Den*_*ret 10
m不是一成不变的.这意味着每个实例都有一个不同的变量.
执行new C3();时
C3,n(由所有实例共享)m,初始化为0,m但仅适用于你的新实例.