【发布时间】:2020-07-14 06:48:39
【问题描述】:
假设我有一个代码:
public static void main(String[] args) {
Animal r1 = new Animal(10,"Amanda");
House c = new House(100, r1);
r1.setAge(3);
House c2 = new House(101, r1);
System.out.println(c);
System.out.println(c2);
}
输出是
3 Amanda
3 Amanda
所以看起来 java 所做的就是在 House 的 Animal 字段值中存储对 r1 的引用,以便对对象本身的任何更改都会反映在对 House 类中的 Animal 变量的任何调用中。是这样吗?还是 java 创建了一个全新的对象?
【问题讨论】: