/** Comprendre les objets et les poignées sur la classe Point. * @author Xavier Crégut * @version 1.6 */ public class ExempleComprendre { /** Afficher un point précédé d'un texte. * @param texte le texte à afficher * @param p le point à afficher */ public static void afficher(String texte, Point p) { System.out.print(texte + " = "); p.afficher(); System.out.println(); } /** Méthode principale */ public static void main(String[] args) { // Créer et afficher un point p1 Point p1; // déclarer une poignée sur un Point p1 = new Point(3, 4); // créer un point et l'attacher à p1 // On peut écrire les deux instructions précédentes sur la // même ligne. Ceci évite d'oublier d'initialiser une // poignée. afficher("p1", p1); // Créer et afficher un point p2 Point p2 = new Point(0, 0); // On déclare des poignées et on // crée des objets quand on veut. afficher("p2", p2); // Afficher la distance entre p1 et p2 double d = p1.distance(p2); System.out.println("Distance de p1 à p2 : " + d); // Translater p1 System.out.println("> p1.translater(6, -2);"); p1.translater(6, -2); afficher("p1", p1); // Qu'est ce qui est affiché ? // Changer l'abscisse de p1 et afficher p1 System.out.println("> p1.setX(0);"); p1.setX(0); afficher("p1", p1); // Qu'est ce qui est affiché ? // Changer l'ordonnée de p1 et afficher p1 System.out.println("> p1.setY(10);"); p1.setY(10); afficher("p1", p1); // Dessiner l'état de la mémoire // Prendre une nouvelle poignée sur p1 System.out.println("> Point p3 = p1;"); Point p3 = p1; afficher("p3", p3); // Qu'est ce qui est affiché ? afficher("p1", p1); // Qu'est ce qui est affiché ? // Déplacer p3 System.out.println("> p3.translater(100, 100);"); p3.translater(100, 100); afficher("p3", p3); // Qu'est ce qui est affiché ? // Afficher p1 afficher("p1", p1); // Qu'est ce qui est affiché ? // Dessiner l'état de la mémoire // Affectations entre poignées System.out.println("> p3 = new Point(123, 321);"); p3 = new Point(123, 321); afficher("p3", p3); // Qu'est ce qui est affiché ? afficher("p1", p1); // Qu'est ce qui est affiché ? System.out.println("> p1 = p2 = p3;"); p1 = p2 = p3; // Dessiner l'état de la mémoire afficher("p1", p1); // Qu'est ce qui est affiché ? afficher("p2", p2); // Qu'est ce qui est affiché ? afficher("p3", p3); // Qu'est ce qui est affiché ? // p1, p2 et p3 sont-ils des points différents ? System.out.println("> p1.translater(-123, -321);"); p1.translater(-123, -321); afficher("p1", p1); // Qu'est ce qui est affiché ? afficher("p2", p2); // Qu'est ce qui est affiché ? afficher("p3", p3); // Qu'est ce qui est affiché ? d = new Point(5, 5).distance(new Point(8, 1)); System.out.println("d = " + d); // Combien y a-t-il de points accessibles ? } }