LICENCE MIAGE

P.O.O : langage JAVA

 

Travaux dirigés

 


 

Série n°5 : Héritage

 


This document is the API specification for the Java 2 Platform, Standard Edition, version 1.3.1.


EXERCICE 1 : un Cercle est une sorte d’Ellipse

EXERCICE 2 : un Cercle possède un centre

EXERCICE 3 : déplacer les objets

EXERCICE 4 : dessiner les objets

EXERCICE 5 : des Mulots pour dessiner

EXERCICE 6 : des Mulots qui jouent au billard

 


EXERCICE 1 : un peu d’héritage : un Cercle est une sorte d’Ellipse Cercle.java


Un cercle est caractérisé par son rayon ; le rayon est un nombre entier positif. On considère dans cette question qu’un cercle est une sorte d’ellipse pour laquelle les deux rayons sont égaux. Consulter la classe Ellipse.java et définir la classe Cercle comme sous classe de la classe Ellipse. On exploitera au maximum les possibilités d’héritage des variables et des méthodes.

a)      Un cercle doit pourvoir répondre aux messages suivants : double perimetre(), double surface()

b)      Documenter la classe Cercle et générer la documentation avec l’outil javadoc. Vous devez obtenir un fichier HTML identique à Cercle.html

c)      Utiliser la classe TestCercle pour tester votre classe Cercle. Vous devez obtenir le résultat suivant :

Ellipse [petit rayon:1 , grand rayon:3] SURFACE=9.42477796076938

Cercle [rayon:1] SURFACE=3.141592653589793

Cercle [rayon:2] SURFACE=12.566370614359172  PERIMETRE=12.566370614359172

 


EXERCICE 2 : Un cercle possède un centre    EllipseC.java CercleC.java


On souhaite ajouter le centre comme caractéristique des Cercles et des Ellipses.

a)      Modifier les classes correspondantes pour prendre en compte ce nouvel attribut. On pourra utiliser la classe Point.java

b)      Utiliser la classe TestCentre pour tester vos deux classes EllipseC et CercleC. Vous devez obtenir le résultat suivant :

EllipseC [petit rayon:1 , grand rayon:3] P0(0 , 0)

CercleC [rayon:3] P1(1 , 2)

CercleC [rayon:2] P1(1 , 2)

CercleC [rayon:2] P0(0 , 0)

 


EXERCICE 3 : déplacer les objets  EllipseD.java         CercleD.java


On veut pouvoir déplacer une Ellipse ou un Cercle en translatant leur centre selon un vecteur donné.

a)      Modifier les classes correspondantes pour prendre en compte ce nouveau comportement.

b)      Utiliser la classe TestDeplacement pour tester vos deux classes EllipseD et CercleD. Vous devez obtenir le résultat suivant :

EllipseD [petit rayon:1 , grand rayon:2] P1(1 , 3)

CercleD [rayon:3] P2(2 , 7)

P3(0 , 1)

P4(1 , 2)

EllipseD [petit rayon:1 , grand rayon:2] P1(2 , 4)

CercleD [rayon:3] P2(1 , 6)

Exit code: 0

No Errors

 


EXERCICE 4 : dessiner les objets

PointG.java       EllipseG.java     CercleG.java


On veut pouvoir dessiner les objets géométriques Point, Ellipse, Cercle. Pour ce faire nous allons utiliser une applet TestG qui contient la méthode paint et remplacera la méthode main. Consulter dans la documentation la class java.awt.Graphics

a)      Dessiner les Points.

Tapez : appletviewer htmlGa.html dans un XTERM  (ou une fenêtre DOS) pour exécuter l’applet TestGa

b)      Dessiner les Ellipses.

c)      Dessiner les Cercles.

 

 


EXERCICE 5 : des Mulots pour dessiner  

Mulot.java        TestMulotb.java


Un Mulot est caractérisé par sa position et son cap (direction dans laquelle il se dirige). Son cap est exprimé en degrés (Est=0°,Nord=‑90°,Ouest=180°,Sud=90°). Vous devez utiliser au maximum la classe PointM.java

a)      Compléter la classe Mulot (MulotEtudiant.java)

·       Un Mulot doit pourvoir répondre au message void avance(int , java.awt.Graphics) pour avancer en ligne droite (sans changer de cap) d’une longueur passée en paramètre

·         Un Mulot doit pourvoir répondre au message void tourne(double) pour changer  de cap (sans se déplacer) d’un angle passé en paramètre

b)      Utiliser l’applet TestMulota.java et le fichier htmlMulota.html pour tester votre classe Mulot

c)      Définir la classe TestMulotb.java et utiliser le fichier htmlMulotb.html pour tester votre classe Mulot. Vous devez obtenir le résultat suivant :

   


EXERCICE 6 : des Mulots pour jouer au billard

MulotBillard.java


Un MulotBillard est une sorte de Mulot qui avance uniquement en diagonal (son cap peut prendre uniquement les valeurs 45°, 135°, -135° ou ‑45°).

a)      Compléter la classe suivante : MulotBillardEtudiant.java

·         Un MulotBillard doit pourvoir répondre au message void avance(java.awt.Graphics) pour avancer en ligne droite d’une unité (sans changer de cap).

·         Un MulotBillard change de cap uniquement lorsqu’il touche un bord de son domaine rectangulaire en suivant la trajectoire d’une boule de billard.

b)      Utiliser l’applet TestMulotBillard.java et le fichier htmlMulotBillard.html pour tester votre classe MulotBillard

c)      Modifier la classe MulotBillard et l'applet TestMulotBillard.java pour "lancer" un couple de Mulots. Définir un comportement en cas de collision.

 


 

Haut du document