Изначально я понял, что ссылки - это просто ссылки в памяти, в которых хранится область памяти реального объекта, который они содержат.Однако приведенный ниже код и его вывод меня смущают.Здесь вы можете увидеть реализацию простого класса Man.
Я создаю объект Man в первой строке со ссылкой, называемой peter.Питер сам по себе является просто местом памяти, верно?Таким образом, человек должен просто хранить объект в той области памяти, в которой он находится.
Но когда я назначаю другому человеку ссылку на Питера, а потом меняю имя Питера, человек этого не знает и печатает имя.Как это может быть, поскольку он хранит ссылку на память для Питера?Разве он не должен следить за изменениями, внесенными в него?
public class Testing {
public static void main(String[] args) {
Man peter = new Man("brown", 182, 78000, "Peter");
Man person = peter;
peter = new Man("brown", 182, 78000, "Leonard");
System.out.println(person.name);
}
}
class Man {
String hairColor;
int height;
double salary;
String name;
public Man()
{
hairColor = "brown";
height = 180;
salary = 50500.5;
name = "John";
}
public Man(String hair, int high, double pay, String nam)
{
this.height = high;
this.hairColor = hair;
this.salary = pay;
this.name = nam;
}
}