本人对static 这个关键字比较困惑
例如下面代码:
class A{
  public  static int a1;
  public  int a2;
}
public class app04{ 
  public static void main(String[] args){ 
      A t1=new A();
      t1.a1=4;
      t1.a2=5;
      A t2=new A();
      t2.a1=6;
      t2.a2=7;
      System.out.println(t1.a1+","+t1.a2);
      System.out.println(t2.a1+","+t2.a2);
   } 
}
结果为:
6,5
6,7为什么结果不是:
4,5
6,7

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【Jo_Cai】截止到2008-07-05 16:31:20的历史汇总数据(不包括此帖):
    发帖的总数量:8                        发帖的总分数:140                      
    结贴的总数量:8                        结贴的总分数:140                      
    无满意结贴数:1                        无满意结贴分:20                       
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:12.50 %               无满意结分率:14.29 %                  
    敬礼!
      

  2.   


            A t1 = new A();
            A.a1 = 4;
            t1.a2 = 5;
            A t2 = new A();
            A.a1 = 6;
            t2.a2 = 7;
            System.out.println(A.a1 + "," + t1.a2);
            System.out.println(A.a1 + "," + t2.a2);
    代码改成这样你可能会明白一点,这跟你原来的代码效果一样静态字段和方法不需要new实例,可以直接调用,如果你new了实例,然后用实例来调用(比如你帖的代码),那么该字段在任何时候都只有一个值