通过复制构造函数复制对象是否获得与原始对象相同的实例变量?

时间:2017-03-03 21:48:16

标签: java object copy-constructor

具有对象实例变量的对象的副本是否与原始对象获得相同的实例变量?如果是这样,我想知道原始和复制对象是否引用相同的实例变量。

1 个答案:

答案 0 :(得分:1)

与C ++不同,Java不会自动提供复制构造函数。因此,对于复制构造函数的行为没有任何一般性的答案,因为Java对它们的行为没有任何限制。

尽管如此,每个对象(无论如何初始化)都有自己的实例变量。这些不与任何其他对象共享;他们可以是相同的"作为另一个对象,只有在持有相同价值的意义上。诸如int之类的原始类型的变量完全相互独立。引用类型的任何两个变量都可以包含引用相同对象的值,但前提是它们的声明类型都与该对象的类兼容。复制构造函数可以轻松地创建这样的效果,但绝不需要这样做。