我不知道如何引用一個引用的對象的值。順便說一句,我不是在討論整數。如何創建一個交換可變類型的方法? (自然數)Java
我想做這個方法。
swapNN(NaturalNumber j, NaturalNumber n)
我想要的j
和n
引用被換,但我不明白怎麼能當我的方法的內幕交易,因爲有限的範圍進行。
另外我將如何做一個方法可變的NaturalNumber
?
是否這樣?
private static void square(NaturalNumber j)
我不知道如何引用一個引用的對象的值。順便說一句,我不是在討論整數。如何創建一個交換可變類型的方法? (自然數)Java
我想做這個方法。
swapNN(NaturalNumber j, NaturalNumber n)
我想要的j
和n
引用被換,但我不明白怎麼能當我的方法的內幕交易,因爲有限的範圍進行。
另外我將如何做一個方法可變的NaturalNumber
?
是否這樣?
private static void square(NaturalNumber j)
我想j的引用和正被換
你不能這樣做,在Java中,因爲它是通過按值。實現這一目標的一種方法是創建一個包裝類,該包裝類將兩個引用保存在兩個字段中並交換它們。
另外我將如何做一個方法,可變的NaturalNumber?
這一切都取決於如何實現NaturalNumber
。與自身相乘。考慮使用BigInteger
或其中一個較大的原語,以免發生溢出。
@Thilo Ooops,在想方根。 –
您不能「交換」它們導致引用(j,n)按值傳遞 - 意味着「原始」引用不會改變。這就是說,如果NaturalNumber的內容是可變的(意思是,它的所有成員都沒有被聲明爲final
),你可以通過將它們的內容「複製」到彼此中來解決它(使用第三個NaturalNumber對象,就像你在「交換」)。通過「交換內容」,您將具有與「交換」引用相同的效果。
你可以粘貼'NaturalNumber'類的結構 – Mohayemin
選中這篇文章。 http://www.javaworld.com/javaworld/javaqa/2000-05/03-qa-0526-pass.html – TheKojuEffect