我正在学习OOP,并在制作对象引用和检查结果方面做了一些任务。我有一个Book
类和一个BookTest
类,在BookTest
类中,我对Book
对象进行了4次对象引用。
Book
有一个名称,以及一个获取该书名称的函数。
class Book {
private String name;
public Book(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
}
对Book
对象的引用如下所示:
Book b1 = new Book("The story of ...");
Book b2 = b1;
Book b3 = new Book("Second story");
Book b4 = new Book("Third story");
这一切都很有效,每当我打印b2.getName()
时,我都会得到预期的"The story of ..."
字符串。
但每当我在打印b2.getName()
行之前添加此行:
b1 = b3;
我希望b2.getName()
为"Second story"
,因为b1
已分配给b3
。它实际上仍然是"The story of ..."
字符串。
为什么会这样?