public class ClassInit {
private Person person=new Person("test", "test1");
private Person[] flock =new Person[]{ person };
public ClassInit() {
for (int i = 0; i < flock.length; i++) {
flock[i] = new Person(i+"name",i+"Id");
}
}
public void print() {
System.out.println(person);
}
public void printArray() {
for (Person person : flock) {
System.out.println(person);
}
}
public static void main(String[] args) {
ClassInit self = new ClassInit();
self.print();
self.printArray();
}
}
class Person {
private String name;
private String id;
public Person(String name, String id) {
super();
this.name = name;
this.id = id;
}
@Override
public String toString() {
return this.name + ":" + this.id;
}
}
Output:
test:test1
0name:0Id
现象:
person的值没有改变
变形1:结果和上例相同
public class ClassInit {
public static void main(String[] args) {
Flock flock = new Flock();
flock.print();
flock.printArray();
}
}
class Flock {
private Person person=new Person("test", "test1");
private Person[] flock =new Person[]{ person };
public Flock() {
for (int i = 0; i < flock.length; i++) {
flock[i] = new Person(i+"name",i+"Id");
}
}
public void print() {
System.out.println(person);
}
public void printArray() {
for (Person person : flock) {
System.out.println(person);
}
}
}
class Person {
private String name;
private String id;
public Person(String name, String id) {
super();
this.name = name;
this.id = id;
}
@Override
public String toString() {
return this.name + ":" + this.id;
}
}
变形2:结果和上例相同
import java.util.ArrayList;
import java.util.List;
public class ClassInit {
public static void main(String[] args) {
Flock flock = new Flock();
flock.print();
flock.printArray();
}
}
class Flock {
private Person person=new Person("test", "test1");
private List<Person> flock =new ArrayList<Person>();
public Flock() {
flock.add(person);
for (int i = 0; i < flock.size(); i++) {
flock.set(i, new Person(i+"name",i+"Id"));
}
}
public void print() {
System.out.println(person);
}
public void printArray() {
for (Person person : flock) {
System.out.println(person);
}
}
}
class Person {
private String name;
private String id;
public Person(String name, String id) {
super();
this.name = name;
this.id = id;
}
@Override
public String toString() {
return this.name + ":" + this.id;
}
}