黑马程序员技术交流社区

标题: 关于静态属性的一个问题 [打印本页]

作者: zhkqy    时间: 2013-12-10 20:31
标题: 关于静态属性的一个问题
//创建一个类
public class Num {
      static int a;
      public void set(int a){
      Num.a=a;
      }
      public int get(){
      return a;
      }
}
//情况一
public static void main(String [] args){
       Vector<Num>  v=new Vector<Num>();
       Num num=new Num();
       num.set(4);
       v.add(num);
       num.set(5);
       System.out.println(v.elementAt(0).get());
}

//情况二
public static void main(String [] args){
      Num s=new Num();
      Vector<Integer>  v=new Vector<Integer>();
      s.set(4);
      v.add(s.get());
      s.set(5);
      System.out.println(v.elementAt(0));
}
情况一输出结果是5,而情况二输出结果是4,为什么是这样呢?

作者: 四五六七八    时间: 2013-12-10 20:56
情况二: Num s=new Num();
      Vector<Integer>  v=new Vector<Integer>();
      s.set(4);           
      v.add(s.get());        //这是往集合里添加一个数字4,
      s.set(5);               //这是设置Num对象的a值为5,
      System.out.println(v.elementAt(0));   //取出集合里添加的数字 4
你自己仔细看看  就清楚了
作者: 高亮亮    时间: 2013-12-10 20:57
不知道关于这个Vector跟Integer……还没看到那里。不过我想问下楼主,为什么你的第一个类里面,不用this.a=a;我觉得这样会不会逻辑感好点,或者你那样用会有弊端?纯新手,无责怪。顶起




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2