【发布时间】:2012-11-26 23:44:46
【问题描述】:
假设我们有一个类Board 有很多字段(即一个相当复杂的类)。我们像这样实例化一个 Board:
Board b = new Board();
请注意,为了这个示例,我没有在构造函数中输入任何参数,尽管在实际示例中,这些参数可能是必需的。如果我们要实例化一个新的 Board 实例并将其设置为如下所示:
Board c = b;
这实际上不会创建一个新板。据我所知,c 和 b 现在指向同一个内存区域,同一个 Board 对象。所以,如果我要更改 b 的某些内容,比如增加一个整数字段,如下所示:
b.count++;//Assume count is an integer field in the Board class.
c.count 的值也应该增加。但是,当我自己这样做时,它不起作用。 b.count 增加,但 c.count 不增加。
谁能向我解释为什么会这样?这种效果是我想要发生的,因此任何关于如何实现它的建议都会非常有帮助(一般的例子很好)。
【问题讨论】:
-
能否请您发布复制它的示例
-
我真的想看看这个例子。
-
每个答案都有相同的例子......我开始怀疑我是否看不到 OP 问题中的代码。
标签: java class pointers reference