我不知道引用引用的对象的值如何。顺便说一句,我不是在谈论整数。
我想做这个方法。
swapNN(NaturalNumber j, NaturalNumber n)
j我希望交换和的引用,n但由于范围有限,当我在方法内部处理时,我不知道如何做到这一点。
另外,我将如何制作一个平方 mutable 的方法NaturalNumber?
像这样?
private static void square(NaturalNumber j)
我不知道引用引用的对象的值如何。顺便说一句,我不是在谈论整数。
我想做这个方法。
swapNN(NaturalNumber j, NaturalNumber n)
j我希望交换和的引用,n但由于范围有限,当我在方法内部处理时,我不知道如何做到这一点。
另外,我将如何制作一个平方 mutable 的方法NaturalNumber?
像这样?
private static void square(NaturalNumber j)
我希望交换 j 和 n 的引用
你不能在 Java 中这样做,因为它是按值传递的。实现此目的的一种方法是拥有一个包装类,该类将两个引用保存在两个字段中并交换它们。
另外,我将如何制作一个平方可变 NaturalNumber 的方法?
这一切都取决于如何NaturalNumber实施。将其与自身相乘。考虑使用一个BigInteger或一个更大的原语,以免溢出。
您不能“交换”它们,因为引用 (j,n) 是按值传递的——这意味着,“原始”引用不会改变。
也就是说,如果 NaturalNumber 的内容是可变的(也就是说,没有声明它的成员final),您可以通过将它们的内容“复制”到彼此中来解决它(使用第三个 NaturalNumber 对象,就像您在“交换”中所做的那样)。
通过“交换内容”,您将获得与“交换”引用相同的效果。