Dans ce tp nous allons tester et mettre en application les concepts d'héritage, d'interface et de classe abstraite.
Reprenez les exemples de codes donnés en cours qui illustrent l'héritage. Compilez chacun de ces exemples, prévoyez leurs exécutions et vérifiez en exécutant les programmes.
Que fait le code suivant ?
public class A { public A(){ this.print(); } public void print(){ System.out.println("Bonjour !"); } } public class B extends A { private String texte; public B(){ } public void print(){ System.out.println( texte ); } public static void main(String[] args){ B test = new B(); } }
Implémentez le code, testez-le et vérifiez vos prévisions.
Nous souhaitons implémenter dans le plan les figures géométriques suivantes :
Concevez la hiérarchie de classes des objets précédents et implémentez là. Vous proposerez ( au moins pour la droite ) plusieurs constructeurs possibles. De même, vous implementerez pour chacun de ces objets la méthode
bool isInside( Point )
qui renvoie vraie si le point passé en paramètre se situe à l'interieur de la figure et faux sinon.
Aide : Pour implémenter les polygones, vous pouvez utiliser les listes java qui vous sont présentées en Annexe.
Dans l'exemple suivant, vous trouverez comment il est possible d'implémenter en java une liste d'objets:
import java.util.*; class A { int a; public A(int a){ this.a = a; } void print(){ System.out.println(a); } } class Main { public static void main(String[] args){ ListA liste_de_A = new LinkedListA(); liste_de_A.add(new A(1)); liste_de_A.add(new A(2)); liste_de_A.add(new A(3)); liste_de_A.add(new A(4)); liste_de_A.add(new A(5)); //Première façon de récupérer les éléments de la liste for (A element : liste_de_A) { element.print(); } //Deuxième façon de récupérer les éléments de la liste Iterator it = liste_de_A.iterator(); while(it.hasNext()){ A element = ( A ) (it.next()); element.print(); } } }