Как я могу поменять местами значения i,j
в функции swap2()
:
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)
создает объект i
со значением 10, поэтому, когда я пишу i=20;j=10
в swap2()
, я устанавливаю там значения!.. так почему это не работает, я знаю, что swap()
не изменит значения i,j
, но почему swap2()
нет работающий? Ну какое изменение сделать в swap2()
чтобы значения поменялись местами.