0

我不知道引用引用的对象的值如何。顺便说一句,我不是在谈论整数。

我想做这个方法。

swapNN(NaturalNumber j, NaturalNumber n)

j我希望交换和的引用,n但由于范围有限,当我在方法内部处理时,我不知道如何做到这一点。

另外,我将如何制作一个平方 mutable 的方法NaturalNumber

像这样?

private static void square(NaturalNumber j)
4

2 回答 2

1

我希望交换 j 和 n 的引用

你不能在 Java 中这样做,因为它是按值传递的。实现此目的的一种方法是拥有一个包装类,该类将两个引用保存在两个字段中并交换它们。

另外,我将如何制作一个平方可变 NaturalNumber 的方法?

这一切都取决于如何NaturalNumber实施。将其与自身相乘。考虑使用一个BigInteger或一个更大的原语,以免溢出。

于 2013-10-02T03:59:06.617 回答
0

您不能“交换”它们,因为引用 (j,n) 是按值传递的——这意味着,“原始”引用不会改变。

也就是说,如果 NaturalNumber 的内容是可变的(也就是说,没有声明它的成员final),您可以通过将它们的内容“复制”到彼此中来解决它(使用第三个 NaturalNumber 对象,就像您在“交换”中​​所做的那样)。

通过“交换内容”,您将获得与“交换”引用相同的效果。

于 2013-10-02T04:09:14.703 回答