Objets géométriques - Université de Bourgogne

Transcription

Objets géométriques - Université de Bourgogne
2,5
Université de Bourgogne
Année universitaire 2015-2016
Info 21 — programmation objet et algorithmique
!
TP 4 — plusieurs classes
Objectif : Construire un programme comportant plusieurs classes.
Objets géométriques
1. Construisez un nouveau projet Geom avec les classes qui permettent de
représenter des points, disques, segments et triangles, selon les modalités
vues en TD. Faites figurer les modificateurs d'accès (public, private).
Les classes devront avoir au moins un constructeur standard et un
constructeur de clonage, plus éventuellement d'autres s'il est possible de
calculer les valeurs des attributs d'une instance à partir d'autres
données1. Pour écrire les constructeurs, les accesseurs et les entrées de la
javadoc, vous pouvez utiliser la commande Insérer du code du menu
Source (explorez les différentes possibilités).
2. Ajoutez à toutes les classes un attribut nom
et ses accesseurs. Faites en sorte que le
constructeur de clonage de chaque classe
ajoute le caractère "'" — pour "prime" —
au nom de l'objet pris pour modèle. Le nom
du milieu d'un segment est "milieu_S" si "S"
est le nom du segment. Le nom d'un segment ou d'un triangle ne sont pas nécessairement spécifiés lors de la construction ; ils
seront alors automatiquement générés par le
constructeur en concaténant (en mettant
bout à bout) les noms des points qui les définissent. Par exemple, les instructions :
Segment P1_P2'
-- Extrémité 1 -Point P1
>> abscisse : 0.5
>> ordonnée : 1.5
-- Extrémité 2 -Point P2'
>> abscisse : 1.5
>> ordonnée : 0.5
-- Milieu -Point milieu_P1_P2'
>> abscisse : 1.0
>> ordonnée : 1.0
-- Longueur ->> 1.4142135623730951
-------------
Point P1 = new Point(0.5, 1.5, "P1");
Point P2 = new Point(1.5, 0.5, "P2");
Segment S = new Segment(P1, new Point(P2));
permettent d'obtenir un segment qui a les caractéristiques ci-dessus à
droite.
Par exemple, les trois sommets d'un triangle peuvent être calculés à partir d'un segment et
un point.
1
3. Ajoutez à ces classes une méthode
toString qui doit résumer l'ensemble des propriétés principales et
dérivées d'un objet. Par exemple,
pour un segment, on aura le résultat ci-dessus à droite. On voit que
l'affichage des caractéristiques d'un
objet doit aussi permettre d'afficher
celles de tous ses composants. Ici,
l'affichage des propriétés d'un segment doit induire celle de ses extrémités et de son milieu.
2
P3
P1
1,5
T
1
1
S
D
P2
0,5
0
0
0,5
1
1,5
2
1
4. Placez dans la méthode main de la classe principale
(la classe Main) les instructions suivantes, qui permettent de construire la
scène de la page précédente :
Point P1=new Point(0.5,1.5,"P1");
Point P2=new Point(1.5,0.5,"P2");
Segment S=new Segment(P1,new Point(P2),"S");
Disque D=new Disque(S.getMilieu(),0.5,"D");
Triangle T=new Triangle(S,new Point(2,1.5,"P3"),"T");
5. Ajoutez les lignes qui permettent de faire afficher les caractéristiques de
tous les objets de la scène (en utilisant les toString). Testez votre programme et modifiez le si le résultat n'est pas conforme aux spécifications
de l'énoncé.
6. À la suite du premier affichage, modifiez le point P2 en lui donnant désormais pour abscisse 0.5. Faites afficher à nouveau les caractéristiques
des divers objets de la scène. Expliquez les modifications observées (si
vous n'y parvenez pas, demandez à l'enseignant). Faites de même en prenant 1.5 comme abscisse pour P1.
7. Faites les modifications nécessaires dans la construction (utilisation des
constructeurs de clonage) pour que la modification des points n'ait plus
d'influence sur les autres instances.
2,5

Documents pareils

POO : Java — TD n°2 Le Java Orienté Objet Exercices

POO : Java — TD n°2 Le Java Orienté Objet Exercices a) écrire la méthode centre retournera le centre du cercle, b) écrire la méthode longueur calculera la circonférence du cercle, c) écrire la méthode dessine affichera le message « Au compas : » sui...

Plus en détail