A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhkqy 中级黑马   /  2013-12-10 20:31  /  1153 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

//创建一个类
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,为什么是这样呢?

评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1

查看全部评分

2 个回复

倒序浏览
情况二: 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
你自己仔细看看  就清楚了

评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1

查看全部评分

回复 使用道具 举报
不知道关于这个Vector跟Integer……还没看到那里。不过我想问下楼主,为什么你的第一个类里面,不用this.a=a;我觉得这样会不会逻辑感好点,或者你那样用会有弊端?纯新手,无责怪。顶起
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马