測試一:
public class TestClass {
int i = 47;public void call(){
for (i = 0; i < 3; i++) {
System.out.println(i);
if(i==2){
System.out.println("\n");
}
}
}
public TestClass() {
}
public static void main(String[] args) {
//創建了兩個對象
TestClass tc1 = new TestClass();
TestClass tc2 = new TestClass();
tc2.i=60;//tc2的i設置爲60
System.out.println("第一個實例的i的值"+tc1.i++);//每一個對象各有一套自己的成員變量,tc1的值不變
tc1.call();
System.out.println("第二個實例的i的值"+tc2.i++);//tc2改變了自己對象的i值
tc2.call();
}
}
結果:
第一個實例的i的值47
0
1
2
第二個實例的i的值60
0
1
2
static可以讓多個實例共享一個變量
測試二
public class TestClass {
static int i = 47;
public void call(){
for (i = 0; i < 3; i++) {
System.out.println(i);
if(i==2){
System.out.println("\n");
}
}
}
public TestClass() {
}
public static void main(String[] args) {
//創建了兩個對象
TestClass tc1 = new TestClass();
TestClass tc2 = new TestClass();
tc2.i=60;//此時,tc2修改了共享的類變量
System.out.println("第一個實例的i的值"+tc1.i++);//tc1和tc2指向同一個類變量i,所以打印結果爲60
tc1.call();//調用完之後i值變爲3
System.out.println("第二個實例的i的值"+tc2.i++);//tc2指向的i變爲了3,打印出3
tc2.call();
}
}
結果:
第一個實例的i的值60
0
1
2
第二個實例的i的值3
0
1
2