日期:2014-05-20  浏览次数:20660 次

java 对象与类 的小问题
public class test{
  static int x1=4;
  int x2=5;
  public static void main(String args[]){
test obj1=new test();
test obj2=new test();
obj1.x1=obj1.x1+2;
obj1.x2=obj1.x2+4;
obj2.x1=obj2.x1+1;
obj2.x2=obj2.x2+6;
x1=x1+3;
System.out.println("obj1.x1="+obj1.x1);
System.out.println("obj1.x2="+obj1.x2);
System.out.println("obj2.x2="+obj2.x2);
System.out.println("test.x1="+test.x1);
}
}
为什么这4个数会等是
10
9
11
10

是因为x1 是静态的吗

------解决方案--------------------
是。
因为X1是静态的,所以每创建一个对象,它的值一直在累加,而X2是非静态的,所以不同的对象原来的值都是5,后创建的对象X2的值不受前一个对象X2值的影响。