Vous êtes sur la page 1sur 2

Cet exercice est est un exercice de base pour entrevoir l'intérêt des classes

abstraites. On définit trois classes.

La classe FormeGeometrique est abstraite. Elle déclare :

 Une méthode concrète appelée Déplacer() pour modifier les coordonnées


d’un forme, Elle a deux attributs passés en paramètre.
 Deux méthodes abstraites nommées Surface() et Perimetre(), sans
paramètre et qui ne retournent rien.
 Une méthode affiche() pour afficher un forme ; par souci de simplicité,
nous nous contenterons ici d’afficher les coordonnées , la surface et le
périmètre du forme .

La classe Rectangle hérite de FormeGeometrique et définit la méthode Surface(),


Perimetre() et affiche() .

Même, la classe Cercle hérite de FormeGeometrique et définit la


méthode Surface(),Perimetre() et affiche().

La classe Test contenant le programme principal, qui s’occupe de tester les bonnes
classes.
abstract public class FormeGeometrique {
double posX, posY;
void deplacer(double x,double y) {
posX=x;
posY=y;
}
void afficherPosition() {
System.out.println("position : ("+posX+","+posY+")");
}
abstract double surface() ;
abstract double perimetre() ;
}

public class Rectangle extends FormeGeometrique {


double largeur, hauteur;
public Rectangle7() {
posX=0; posY=0; largeur=0; hauteur=0;
}
public Rectangle7(double x, double y, double la, double lo) {
posX=x; posY=y; largeur=la; hauteur=lo;
}
double surface() {
return largeur * hauteur;
}
double perimetre() {
return 2*(largeur + hauteur);
}
}
public class Cercle extends FormeGeometrique {
double rayon;
Cercle7(double x, double y, double r) {
posX=x; posY=y; rayon=r;
}
double surface() {
return Math.PI*Math.pow(rayon, 2.);
}
double perimetre() {
return 2*rayon*Math.PI;
}
}

public class Test {


public static void main (String args[]) {
Rectangle rect;
Cercle cerc;
rect = new Rectangle(9,3,10,20);
cerc = new Cercle(43,32,100);
System.out.print("cercle ");
cerc.afficherPosition();
System.out.print("rectangle ");
rect.afficherPosition();
cerc.deplacer(66,88);
System.out.print("cercle maintenant ");
cerc.afficherPosition();
}
}

Vous aimerez peut-être aussi