Côté langages
243
• en définissant une méthode particulière qui sera utilisée par l’affectation,
• en définissant un constructeur particulier (dit constructeur par recopie) qui sera utilisé lors des recopie de
paramètres.
Il existe des mécanismes permettant d’utiliser ces méthodes de manière récursive.
Voici, écrit en Java, PHP et C++, l’exemple du paragraphe 2, page 235 (le programme C# serait très proche du programme Java).
Java
public class TstSegment
{ public static void main(String args[])
{ Point a = new Point (1, 2), b = new Point (4, 5), c = new Point (7, 8) ;
Segment s1 = new Segment (a, b), s2 = new Segment (b, c) ;
System.out.println ("Segment s1 (ab)") ; s1.affiche () ;
System.out.println ("Segment s2 (bc)") ; s2.affiche () ;
b.deplace (10, 20) ; System.out.println ("on deplace b") ;
System.out.println ("Segment s1 (ab)") ; s1.affiche () ;
System.out.println ("Segment s2 (bc)") ; s2.affiche () ;
}
}
class Point
{ public Point (int x, int y) { abs = x ; ord = y ; }
public void deplace (int dx, int dy) { abs += dx ; ord += dy ; }
public void affiche ()
{ System.out.println ("abscisse : " + abs + ", ordonnée : " + ord) ;
}
private int abs, ord ;
}
class Segment
{ public Segment (Point o, Point e)
{ origine = o ; extremite = e ;
}
public void affiche ()
{ System.out.print ("-- origine
") ; origine.affiche();
System.out.print ("-- extrémité ") ; extremite.affiche();
}
private Point origine, extremite ;
}
Segment s1 (ab)
-- origine
abscisse : 1, ordonnée : 2
-- extrémité abscisse : 4, ordonnée : 5
243
• en définissant une méthode particulière qui sera utilisée par l’affectation,
• en définissant un constructeur particulier (dit constructeur par recopie) qui sera utilisé lors des recopie de
paramètres.
Il existe des mécanismes permettant d’utiliser ces méthodes de manière récursive.
Voici, écrit en Java, PHP et C++, l’exemple du paragraphe 2, page 235 (le programme C# serait très proche du programme Java).
Java
public class TstSegment
{ public static void main(String args[])
{ Point a = new Point (1, 2), b = new Point (4, 5), c = new Point (7, 8) ;
Segment s1 = new Segment (a, b), s2 = new Segment (b, c) ;
System.out.println ("Segment s1 (ab)") ; s1.affiche () ;
System.out.println ("Segment s2 (bc)") ; s2.affiche () ;
b.deplace (10, 20) ; System.out.println ("on deplace b") ;
System.out.println ("Segment s1 (ab)") ; s1.affiche () ;
System.out.println ("Segment s2 (bc)") ; s2.affiche () ;
}
}
class Point
{ public Point (int x, int y) { abs = x ; ord = y ; }
public void deplace (int dx, int dy) { abs += dx ; ord += dy ; }
public void affiche ()
{ System.out.println ("abscisse : " + abs + ", ordonnée : " + ord) ;
}
private int abs, ord ;
}
class Segment
{ public Segment (Point o, Point e)
{ origine = o ; extremite = e ;
}
public void affiche ()
{ System.out.print ("-- origine
") ; origine.affiche();
System.out.print ("-- extrémité ") ; extremite.affiche();
}
private Point origine, extremite ;
}
Segment s1 (ab)
-- origine
abscisse : 1, ordonnée : 2
-- extrémité abscisse : 4, ordonnée : 5
