Pourquoi les paramètres sont-ils assignables ?
Hello,
Venant du c++, le java me pose pas mal de problèmes, j'ai (enfin) compris pourquoi une fonction "swap" n'était pas possible en java, grâce à cet article, mais du coup je me pose une question, pourquoi est-ce que ces 2 lignes sont valides ?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| public void tricky(Point arg1, Point arg2)
{
arg1.x = 100;
arg1.y = 100;
Point temp = arg1;
arg1 = arg2; // celle la
arg2 = temp; // et celle la
}
public static void main(String [] args)
{
Point pnt1 = new Point(0,0);
Point pnt2 = new Point(0,0);
System.out.println("X: " + pnt1.x + " Y: " +pnt1.y);
System.out.println("X: " + pnt2.x + " Y: " +pnt2.y);
System.out.println(" ");
tricky(pnt1,pnt2);
System.out.println("X: " + pnt1.x + " Y:" + pnt1.y);
System.out.println("X: " + pnt2.x + " Y: " +pnt2.y);
} |
Modifier une copie d'une référence n'a que peut d'intérêt et est trompeur (quand on à pas l'habitude du moins).
Bref je comprend pas trop pourquoi ces références sont assignables.