Предположим, у нас есть 1 класс с именем GroupOfStudents
, у которого есть одно свойство с именем vectorOfStudents
. Итак, этот класс выглядит так:
public class GroupOfStudents{
public Vector<Student> vectorOfStudents = new Vector<Student>();
public GroupOfStudents(Vector<Student> vectorOfStudents) {
this.vectorOfStudents = vectorOfStudents;
}
}
Хорошо, просто, верно? Кроме того, у нас есть один класс с именем Student
, и, скажем, в нем просто указано имя студента.
public class Student {
public String name;
public Student(String name) {
this.name = name;
}
}
Теперь давайте создадим 2 группы без учеников.
Vector<Student> emptyVectorOfStudents = new Vector<Student>();
GroupOfStudents group1 = new GroupOfStudents(emptyVectorOfStudents);
GroupOfStudents group2 = new GroupOfStudents(emptyVectorOfStudents);
И, конечно, давайте приведем group1
например 1 ученика по имени "Люк".
Student student1 = new Student("Luke");
group1.vectorOfStudents.add(student1);
Пусть вторая группа останется пустой. Когда я хочу вывести имена студентов обеих групп, по какой-то причине group2
также имеет student1
в своем векторе.
for(Student s: group1.vectorOfStudents) {
System.out.print("Name: " + s.name + " ");
}
System.out.println("");
for(Student s: group2.vectorOfStudents) {
System.out.print("Name: " + s.name + " ");
}
Вывод:
Name: Luke
Name: Luke
И это должно быть:
Name: Luke (because second group has no students)
Любая причина, почему это происходит?