1. Enseignante: Nada Ben Latifa
1
Exercice Héritage en JAVA
Exercice 2 :
Ecrire une classe JAVA Forme où une forme est caractérisée par les
coordonnées de son centre (stockées dans un tableau).
N'oubliez pas d'implémenter les constructeurs (avec argument(s) et par défaut),
les accesseurs et modificateurs, ainsi que la méthode toString.
De plus définissez une méthode calculeSurface qui calcule la surface d'une
forme.
A partir de cette classe de base, dérivez ensuite les classes Rectangle et Ellipse
où un rectangle possède une longueur et une largeur, tandis qu'une ellipse
possède deux rayons. Dérivez enfin les classes Carre et Cercle.
Correction :
class Forme{
private int[] pos;
private double surface;
Forme() {
pos = new int[] {0,0};
surface = 0.;
}
public double calculerSurface() {
return 0.;
}
2. Enseignante: Nada Ben Latifa
2
public int getX() {
return pos[0];
}
public int getY() {
return pos[1];
}
public void setX(int v) {
pos[0] = v;
}
public void setY(int v) {
pos[1] = v;
}
public String toString(){
return "Position : " + getX() + " - " + getY() + "nSurface : " +
calculerSurface();
}
}
class Rectangle extends Forme {
private int longueur, largeur;
public double calculerSurface() {
return longueur * largeur; }
3. Enseignante: Nada Ben Latifa
3
public Rectangle(int lg, int la) {
longueur = lg;
largeur = la;
}
}
class Ellipse extends Forme {
private int r1, r2;
public double calculerSurface() {
return Math.PI * r1 * r2;
}
public Ellipse(int r1, int r2) {
this.r1 = r1;
this.r2 = r2;
}
}
class Cercle extends Ellipse {
public Cercle(int r) {
super(r,r);
}
}
4. Enseignante: Nada Ben Latifa
4
public class TestForme {
public static void main(String[] args) {
Forme a = new Rectangle(15,20);
a.setX(3);a.setY(56);
System.out.println(a);
a = new Cercle(1);
a.setX(100); a.setY(100);
System.out.println(a);
}}