TP2 : Concepts orient s objet en JAVA
TP N 2
Objectifs
Temps allou
Outils
- Maitriser la d finition de classe et la cr ation
3h00
Eclipse
dobjets.
- Sinitier la d claration des membres dune
classe.
- Manipuler les constructeurs, lappel de
m thode, les attributs objets.
Exercice 1 : La classe Point
1) Ecrire une classe Point qui permet de repr senter un point sur un plan cart sien.
D claration de classe, dattributs, de m thodes
3) Ecrire une classe TestPoint d crivant un petit programme utilisant la classe Point.
Instanciation et appel de m thode
Ce programme permet de
a. cr er un point p (gr ce au constructeur par d faut)
La cr ation dun objet entra ne syst matiquement linitialisation par d faut de
ses donn es membres, comme le montre le tableau suivant :
Types de donn es
Valeur par d faut
Advertisement
boolean
char
byte, short, int, long
float, double
Objet
False
0
0.0
Une r f rence
b. Afficher les coordonn es du point p sous la forme
suivante : Nom(abscisse, ordonn e)
c. Le d placer (abscisse +1 et ordonn e -2) et en afficher de nouveau
ses coordonn es.
d. Faire appel la m thode reset() puis afficher de nouveau les coordonn es
du point.
Question :
" Peut-on d placer un point partir de TestPoint sans appeler la m thode deplacer()?
" Est-ce que l'appel de deplacer() ( partir de TestPoint) est toujours possible? Faire
une discussion.
Constructeurs et cr ation dobjets
2) Chaque point est caract ris par son abscisse et son ordonn e de type int et son
4) Reprendre la d finition de la classe Point en ajoutant un constructeur 2 param tres recevant
nom de type char.
Advertisement
a. D clarerez, dans un premier temps, ces attributs sans leur attribuer
de modificateur de visibilit .
en arguments les coordonn es d'un point(Faites en sorte que les param tres
pass s aient le m me nom que les attributs). Puis r -ex cuter la classe TestPoint.
Que se passe-il pr sent ? Comment expliquez-vous cela ?
b. Ajoutez une m thode afficher() imprimant sur l' cran les coordonn es
5) Compl tez la classe Point par :
dun point
a. un constructeur sans param tres permettant dinitialiser labscisse et
c. D finir une m thode deplacer(int a, int b) effectuant son d placement selon
lordonn e z ro et le nom du point O.
les pas communiqu s la m thode comme arguments (d placement par
rapport la position courante).
d. Ajoutez la m thode reset() permettant de ramener un point lorigine
du rep re.
TP2 : Concepts orient s objet en JAVA
Page | 1
b. un troisi me constructeur qui prend un point en param tre et utilise
les coordonn es de celui-ci pour s'initialiser.
Page | 2
TP2 : Concepts orient s objet en JAVA
TP2 : Concepts orient s objet en JAVA
6) Modifier la classe TestPoint de fa on cr er trois objets Point, le premier (p1) avec le
Deux objets identiques sont gaux (poss de les m me valeurs) mais deux objets
Advertisement
constructeur param tr (abscisse =3 et ordonn e =5), le deuxi me (p2) avec le constructeur
gaux ne sont pas forc ment identiques (nont pas la m me r f rence m moire).
sans param tres et le troisi me (p3) en passant en param tre le point p1.
Question : Que donne dapr s vous le code suivant :
System.out.println(p1==p2);
System.out.println(p1==p3);
9) D finir dans la classe Point une m thode co ncide_V1 (Point p) qui retourne un
r sultat bool en selon que les attributs de l'objet point communiqu en argument
poss dent les m mes valeurs que ceux de l'objet courant ou non. (comparaison entre
lobjet ayant fait appel la m thode co ncide_V1 et lobjet pass en param tre).
10) Faire appel la m thode co ncide_V1 dans la classe TestPoint afin de v rifier
l galit des points.
11) Il serait plus judicieux de faire en sorte que la m thode permettant de tester l galit de
deux points prenne en param tre les deux points tester. Trouvez une solution
pour r aliser une telle m thode que vous nommerez coincide_V2(Point a, Point
b). Testez cette m thode dans la classe TestPoint.
M thode de classe
La m thode toString est d finie dans la classe Object ; en cons quence
toutes les classes Java en h ritent.
Elle renvoie le nom de la classe de l'objet concern suivi de l'adresse de
M thode toString()
cet objet.
Linstruction System.out.println(O.toString()) est
quivalente System.out.println(O). O tant un objet.
Advertisement
Tester le code suivant dans votre classe TestPoint :
System.out.println(p1);
System.out.println(p3);
System.out.println(p3);
Quel r sultat cela produit ?
La m thode toString, d finie dans la classe Object, admet pour
prototype : public String toString()
Quand on red finit la m thode toString, on fait en sorte qu'elle renvoie
une cha ne de caract res servant d crire l'objet concern .
7) D finir dans la classe Point une m thode toString() permettant de retourner une cha ne de
caract res (un String) d crivant un point (dans ce cas son nom et ses coordonn es).
8) Utilisez la m thode toString() dans la classe TestPoint afin dafficher les
caract ristique des 3 objets.
Nous souhaitons faire un test d galit sur les objets pr c demment cr s.
Comparaison dobjet
L'op rateur == v rifie si deux objets sont identiques : il compare que les deux objets
poss dent la m me r f rence m moire et sont donc en fait le m me objet.
Page | 3
Page | 4