一个静态变量的java小程序

来源:百度知道 编辑:UC知道 时间:2024/05/22 15:55:19
public class TestCount {
private int count1=0;
private static int count2=0;

public int getCount1(){
return count1;
}
public int getCount2(){
return count2;
}
public void add(){
count1++;
count2++;
}
public static void main(String[] args) {
TestCount t1=new TestCount();
TestCount t2=new TestCount();
TestCount t3=new TestCount();
t1.add();
System.out.println(t1.getCount1()+","+t1.getCount2());
t2.add();
System.out.println(t1.getCount1(+","+t1.getCount2());
System.out.println(t2.getCount1()+","+t2.getCount2());
}

}
为什么t1的值不变啊,请详细解释啊,新手

t1是对象,怎么变?
你是想说count1的值不变么?
t1.add();
System.out.println(t1.getCount1()+","+t1.getCount2());
实例t1的count1=1 ,count2=1
输出1,1

===================================================================
t2.add();
System.out.println(t1.getCount1(+","+t1.getCount2());
实例t1的count1=1,
实例t2的count1=1,由于count2是静态的,存放在静态存储区所以count2也要自加 ,count2=2.
输出1,2

===================================================================
System.out.println(t2.getCount1()+","+t2.getCount2());
直接输出实例t2的count1和count2
既输出 1,2

===================================================================

静态变量是存放在静态存储区的,
就只有1个,
没有打上static的变量,只要是不同的实例,内存就会开辟出不同的空间,互相没有关系