TP2 : Concepts orientés objet en JAVA

Object-Oriented Programming in Java · notes

Browse all programmation documents

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