/**
* Un Carré est un Rectangle particulier
* (Carré est une specialisation de Rectangle)
*/
public class Carré extends Rectangle {
/* Invariant de classe : largeur = longueur >=0 */
/**
* crée un carré de la dimension voulue
*
* @param côté longueur du côté
*/
public Carré(double côté) {
super(côté, côté);
}
/**
* Rôle : change la valeur du coté du carré courant
*
* @param c nouvelle valeur du coté
*/
public void changerCoté(double c) {
super.changerLargeur(c);
super.changerLongueur(c);
}
/**
* Rédéfinition de changerLargeur de Rectangle pour
* garantir l’invariant de la classe Carré
*/
public void changerLargeur(double l) {
this.changerCoté(l);
}
/**
* Rédéfinition de changerLongueur de Rectangle pour
* garantir l’invariant de la classe Carré
*/
public void changerLongueur(double L) {
this.changerCoté(L);
}
}
nov. 09, 16 15:26 Page 1/1Carré.java
Printed by Vincent Granet
mercredi novembre 09, 2016 1/9
/**
* Un Cercle est une Ellipse particulière
* (Cercle est une spécialisation d’Ellipse)
*/
public class Cercle extends Ellipse {
/* Invariant de classe : petitRayon = grandRayon >=0 */
/**
* crée un cercle de diamètre donné
*
* @param diamètre du cercle
*/
public Cercle(double diamètre) {
super(diamètre, diamètre);
}
/**
* Rôle : change la valeur du diamètre du Cercle courant
*
* @param c nouvelle valeur du diamètre
*/
public void changerDiamètre(double d) {
super.changerPetitRayon(d);
super.changerGrandRayon(d);
}
/**
* Rédéfinition de changerPetitRayon d’Ellipse pour
* garantir l’invariant de la classe Cercle
*/
public void changerPetitRayon(double pa) {
this.changerDiamètre(pa);
}
/**
* Rédéfinition de changerGrandRayon d’Ellipse pour
* garantir l’invariant de la classe Cercle
*/
public void changerGrandRayon(double ga) {
this.changerDiamètre(ga);
}
/*
* Rôle : renvoie la représentation sous forme d’une String de
* l’objet courant this
*/
public String toString() {
return "Cercle (" + petitRayon + ")";
}
}
nov. 09, 16 15:26 Page 1/1Cercle.java
Printed by Vincent Granet
2/9 mercredi novembre 09, 2016