TP3 - Héritage

Dans ce tp nous allons tester et mettre en application les concepts d'héritage, d'interface et de classe abstraite.

Exercice 1 :

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.

Exercice 2 :

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.

Exercice 3 : Implémentation de figures

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.

Annexe : Utilisation des listes en java

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){
		List‹A›  liste_de_A = new LinkedList‹A›();
		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();
		}
	}
}

Valid XHTML 1.1