}
public static void test(){
String name[]={"Li","ndk"};
int age[]={1,2};
Vector<Object> v=new Vector<Object>();
Person p=new Person();
for(int i=0;i<2;i++){
//Person p=new Person(); *******************
p.setName(name[i]);
p.setAge(age[i]);
v.add(p);
}
for(int i=0;i<v.size();i++){
System.out.println(v.get(i));
}
}
}
class Person{
private String name="";
private int age=0;
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
public int getAge(){
return age;
}
public void setAge(int age){
this.age=age;
}
}
上程序中,当把 Person p=new Person(); 放在for循环外,则打印出的会被最后一个地址值覆盖,放在里面就正常,查了一下说是作用域太大,不过没看懂,有没有懂的仔细解释一下?