java编程思想练习题-第2章练习8

题目:编写一个程序,展示无论你创建了某个特定类的多少个对象,这个类中的某个特定static域只有一个实例。

分析:被static修饰的成员是类变量,每个该类的实例都共用这一个类变量。

class test{
	public static int a=0;
	
	

	public static void main(String []args){
		test t1=new test();
		test t2=new test();
		test t3=new test();
		System.out.println("before add:");
		System.out.println("t1.a="+t1.a+"t2.a="+t2.a+"t3.a="+t3.a);
		t1.a++;
		System.out.println("after t1.a++:");
		System.out.println("t1.a="+t1.a+"t2.a="+t2.a+"t3.a="+t3.a);
		t2.a++;
		System.out.println("after t2.a++:");
		System.out.println("t1.a="+t1.a+"t2.a="+t2.a+"t3.a="+t3.a);
	}
	
}

 

结果:

before add:
t1.a=0t2.a=0t3.a=0
after t1.a++:
t1.a=1t2.a=1t3.a=1
after t2.a++:
t1.a=2t2.a=2t3.a=2

 

结论:当一个实例的a变化的时候,其他实例的a也跟着变化,因为a是类变量,所有的实例都引用的是一个。

猜你喜欢

转载自buptchj.iteye.com/blog/2247270