Écrire une classe Point représentant un point dans le plan
et possédant un constructeur Point(int, int), une méthode
réalisant une translation, et une méthode de comparaison de signature
boolean equals(Point).
Dans la méthode main d'une classe Test,
créer un point et le désigner par deux références p1 et
p2. Comparer p1 et p2 avec l'opérateur
== et avec la méthode sameAs. Effectuer une
translation de p1 et refaire les comparaisons. Que
constate-t-on ?
Soit le code suivant
p1 = new Point(1,1);
p2 = new Point(1,1);
Comparer à nouveau p1 et p2. Que constate-t-on ?
Exécuter l'affectation p1 = p2. Que devient l'objet qui était
référencé par p2 ?
Exercice n° 2 (Point)
Que se passe-t-il si on écrit Point p =
new Point(); alors que ce constructeur n'est pas écrit dans la
classe Point ?
Reprendre la classe Point et ajouter un
constructeur sans argument.
Ajouter une méthode void translate(int d) qui déplace
un point en changeant sa coordonnée x en x + d
et sa coordonnée y en y + d.
Comment cette méthode cohabite-t-elle avec la méthode
void translate(int dx, int dy) déjà écrite ?
Exercice n° 3 (Circle)
Créer une classe Circle pour représenter des cercles.
Les attributs d'un cercle seront un point (de type Point)
représentant le centre du cercle, et un rayon (de type int).
Écrire dans cette classe deux constructeurs, l'un prenant en argument
un point (de la classe Point) et un entier. L'autre prendra en
argument trois entiers dont les deux premiers seront les coordonnées du centre
du cercle.
Écrire une méthode void translate(int dx, int dy) qui permet
de déplacer le cercle.
Écrire ce qu'il faut dans la classe pour que lorsqu'on affiche un
cercle, on obtienne les coordonnées de son centre et son rayon; par exemple
System.out.println(c); doit afficher
(1,1),3 pour un cercle centré sur le point de coordonnées (1,1)
et de rayon 3.
Écrire la méthode public boolean equals(Circle o) qui teste si
deux cercles sont égaux (même coordonnées du centre et même rayon).