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 ?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).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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); }
Bref je comprend pas trop pourquoi ces références sont assignables.
Partager