Pages

samedi 15 février 2014

Exercices corrigés java : héritage

Exercice java :




Ecrire trois classes : Figure, Carre, et Rectangle, telles que :
1. Figure a des attributs abscisse et ordonnée, ainsi qu’une couleur (encodée par un entier).
2. Carre et Rectangle héritent de Figure, mais ont en plus une ou deux longueur pour les côtés.
3. Figure a un attribut privé Vector référencant toutes les instances de sa classe et de ses sous classes.
4. Figure a une méthode statique getInstances() renvoyant ce vecteur.
5. Carre et Rectangle redéfinissent cette méthode getInstances() de manière à ne récupérer que les instances     qui correspondent à leur type.


Correction exercice  :

 On déduira aisément une solution pour la classe Rectangle d’une solution pour la classe Carre :


//Fichier Figure.java
import java.util.Vector ;
public class Figure {
private static Vector instances = new Vector();
private int abscisse;
private int ordonnee;
private int couleur;
public Figure( int abscisse , int ordonnee , int couleur ) {
this.abscisse = abscisse;
this.ordonnee = ordonnee;
this.couleur = couleur;
instances.add(this);
}
public static Vector getInstances() { return instances ; }
public String toString(){
return (abscisse+" "+ordonnee+" "+couleur);
}
}


public class Carre extends Figure {
private int cote ;
public Carre(int abscisse, int ordonnee, int couleur, int cote) {
super(abscisse,ordonnee,couleur);
this.cote = cote;
}
public static Vector getInstances() {
int nCarre = 0;
Vector instancesCarre = new Vector();
Vector instances = Figure.getInstances();
Enumeration e = instances.elements();
Figure uneFigure;
while(e.hasMoreElements()) {
uneFigure = (Figure)e.nextElement();
if (uneFigure instanceof Carre)
instancesCarre.add(uneFigure);
}
return instancesCarre;
}
public String toString(){
return (super.toString()+" "+cote);
}
}


//Fichier Test.java
import java.util.Vector ;
import java.util.Enumeration ;
public class Test {
public static void main(String[] argv) {
Figure f1 = new Figure(1,1,1);
Figure f2 = new Figure(2,2,2);
Carre c3 = new Carre(3,3,3,3);
Figure f4 = new Figure(4,4,4);
Carre c5 = new Carre(5,5,5,5);
5System.out.println("Liste des figures") ;
Enumeration e = Figure.getInstances().elements() ;
while(e.hasMoreElements()){
System.out.println(e.nextElement()) ;
}
System.out.println("Liste des carres") ;
e = Carre.getInstances().elements() ;
while(e.hasMoreElements()){
System.out.println(e.nextElement()) ;
}
}
}


Aucun commentaire:

Enregistrer un commentaire

Partenaires

Computers Blogs

Contactez-nous

Nom

E-mail *

Message *

Tous droits resérvés-www.exercices-corriges.com Seo Blogger Templates