Salve,
vorrei che qualcuno mi spiegasse come mai stampa questi risultati:
codice:
class A {
private int x;
public A(int val) {
x = val;
}
public void set(int val) {
x = val;
}
public int get() {
return x;
}
}
class PassaggioParametri {
public static void metodoUno(A p1, A p2) {
p1.set(3);
p2.set(5);
A temp;
temp = p1;
p1 = p2;
p2 = temp;
}
public static void metodoDue(int p1, int p2) {
p1 = 3;
p2 = 5;
int temp;
temp = p1;
p1 = p2;
p2 = temp;
}
public static void main(String[] args) {
A a1 = new A(1);
A a2 = new A(2);
int i1 = 1;
int i2 = 2;
System.out.println("Valore a1: " + a1.get());
System.out.println("Valore a2: " + a2.get());
System.out.println("Valore i1: " + i1);
System.out.println("Valore i2: " + i2);
metodoUno(a1, a2);
metodoDue(i1, i2);
System.out.println("Valore a1: " + a1.get());
System.out.println("Valore a2: " + a2.get());
System.out.println("Valore i1: " + i1);
System.out.println("Valore i2: " + i2);
}
}
Valore a1: 1
Valore a2: 2
Valore i1: 1
Valore i2: 2
da qui in poi non capisco perchè questi risultati.
Valore a1: 3
Valore a2: 5
Valore i1: 1
Valore i2: 2
Grazie