首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

一个LIST有关问题

2012-04-07 
一个LIST问题。Person类:public class Person{public static String Nopublic static String Namepublic

一个LIST问题。
Person类:

public class Person{

public static String No;
public static String Name;

public static String getNo() {
return No;
}
public static void setNo(String no) {
No = no;
}
public static String getName() {
return Name;
}
public static void setName(String name) {
Name = name;
}

}
main方法:

public static void main(String[] args){
List<Person> list =new ArrayList<Person>();
Person person=null;


for (int i = 0; i < 2; i++) {
person=new Person();
person.setNo("no"+(i+1)*2);
person.setName("person"+(i+1)*2);
list.add(person);
}

for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i).getNo());
System.out.println(list.get(i).getName());
}
}


运行结果:

no4
person4
no4
person4

为什么不是:
no2
person2
no4
person4

困惑了。。。

[解决办法]
public static String No;
public static String Name;

你定义的是类静态成员,也就意味着所有该类的实例全都共享这两个变量,你还困惑个啥?
[解决办法]
public static String No;
你这个定义的是 static 类型的,简单点说,这个类都使用同一个 No变量,所以你取出来的是最后赋值进去的

热点排行