On dispose de la classe suivante :
class Point
{ public Point (double x, double y) { this.x=x ; this.y=y ; }
public void deplace (double dx, double dy) { x+=dx ; y+=dy ; }
public void affiche ()
{ System.out.println ("Point de coordonnees " + x + " " + y) ;}
public double getX() { return x ; }
public double getY() { return y ; }
private double x, y ;
}
On souhaite réaliser une classe Cercle disposant des méthodes suivantes :
? constructeur recevant en argument les coordonnées du centre du cercle et son rayon,
? deplaceCentre pour modifier les coordonnées du centre du cercle,
? changeRayon pour modifier le rayon du cercle,
? getCentre qui fournit en résultat un objet de type Point correspondant au centre du
cercle,
? affiche qui affiche les coordonnées du centre du cercle et son rayon.
- Définir la classe Cercle comme classe dérivée de Point.
- Définir la classe Cercle comme possédant un membre de type Point.
Dans les deux cas, on écrira un petit programme mettant en jeu les différentes fonctionnalités de la classe Cercle.
Exercice 4 : - Réaliser une classe PointN permettant de manipuler des points d?un plan à coordonnées
entières et repérés par un nom de type chaîne. On se limitera à un constructeur et à une
méthode affiche affichant le nom du point et ses coordonnées, de manière que les instructions
suivantes :
PointN a = new PointN (2, 5, “orig”) ;
System.out.print ("a = ") ; a.affiche() ;
fournissent les résultats suivants :
a = Point nomme orig et de coordonnees 2 5 - Modifier la classe précédente, de manière que les résultats suivants puissent maintenant
s?obtenir ainsi (on pourra supprimer la méthode affiche) :
PointN a = new PointN (2, 5, “orig”) ;
System.out.println ("a = " + a) ;
Remarque: La classe Object, dont dérive toute classe, dispose d?une méthode toString qui, par défaut, affiche le nom de la classe et l?adresse de l?objet concerné
:-(: