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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

©   /  2012-7-14 12:54  /  6250 人查看  /  8 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 翁游龙 于 2012-7-14 13:25 编辑

当把p添加到list之后,再次对p进行修改,取出来的是修改后的内容
因为引用p指向了在内存空间的Person的成员,不管你对p怎么修改,
list获得的数据都是最新的。看看以下程序你就应该明白了:
  1. import java.util.*;
  2. public class TestList
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 List<Person> list = new ArrayList<Person>();
  7.                 Person p = new Person("张三");
  8.                 list.add(p);
  9.                 System.out.println(list);  //打印张三

  10.                 p.setName("李四");
  11.                 System.out.println(list);  //修改后打印李四
  12.         }
  13. }

  14. class Person{
  15.         private String name;
  16.         Person(String name){
  17.                 this.name = name;
  18.         }
  19.         public void setName(String name){
  20.                 this.name = name;
  21.         }
  22.         public String getName(){
  23.                 return this.name;
  24.         }
  25.         public String toString(){
  26.                 return "name="+this.name;
  27.         }
  28. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
韦念欣 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马