整型如何更改掉在swap2()
功能i,j
值:如何交換在Java
enter code here public class pass_by_ref {
public static void swap(Integer i, Integer j) //this will not change i j values in main
{
Integer temp = new Integer(i);
i = j;
j = temp;
}
public static void swap2(Integer i, Integer j)
{
i = 20; //as i am setting i value to 20 why isn't it reflected in main and same for j
j = 10;
}
public static void main (String[] args) throws java.lang.Exception
{
Integer i = new Integer(10);
Integer j = new Integer(20);
swap(i, j);
System.out.println("i = " + i + ", j = " + j);
swap2(i, j);
System.out.println("i = " + i + ", j = " + j);
}
}
輸出:
i=10,j=20
i=10,j=20;
我認爲Integer i=new Integer(10)
值爲10創建一個對象i
,所以當我寫i=20;j=10
在swap2()
我設置了值!所以爲什麼它不工作 我知道swap()
將不會更改i,j
值,但爲什麼不是swap2()
不工作? 那麼在swap2()
中做什麼更改,以便值被交換。
你不能。 Java是通過價值傳遞的。寫一個方法來做到這一點是不可能的。 –
我可以用2 Integer i和j做一個類,然後創建該類的一個對象,然後交換值? – rashik
是的,你可以這樣做,或者你可以在答案中使用數組。它的工作原理是因爲數組是可變的。 –