Algorithmique et Programmation Orientée Objets - Université Libre ...

Exercices UML ... citer des classes abstraites ou des interfaces dans les
exercices de modélisation précédents ? ... Interfaces graphiques : corrigés sur le
site ...

Part of the document


Université Libre de Bruxelles
Faculté des Sciences Appliquées
Cours INFO 366
Prof. H. Bersini
Algorithmique et Programmation Orientée Objets
Travaux Pratiques (4) - UML, classes abstraites, AWT et Gestion
d'événements - Corrigés
Nathanaël Ackerman( Laurent Mundeleer(
1. Exercices UML
1. Géométrie
Exemple de schéma (incomplet) : voir sur le site
2. Simulation préhistorique
Exemple de schéma (incomplet) : voir sur le site 2. Classes abstraites, interfaces
Pouvez-vous citer des classes abstraites ou des interfaces dans les
exercices de modélisation précédents ?
Typiquement : Forme2D et EtreVivant par exemple
Dans les API de Java ?
Toutes les classes du type WindowListener, ActionListener,... ou de façon
générique XXXListener sont des interfaces, et sont donc abstraites.
Qu'est-ce qu'une interface ?
Il s'agit d'une classe abstraite ne contenant que des méthodes abstraites
(et éventuellement des constantes). Pas de données membres variables,
donc.
Quelle est la différence entre une classe abstraite et une interface ?
(Pensez aux avantages et inconvénients de chacune).
Classe abstraite
- Contient au moins une méthode abstraite
- Peut posséder un constructeur
- Peut posséder des données membres
- Pas de multihéritage
Interface
- Toutes les méthodes sont abstraites
- Pas de constructeur - Pas de données membres ou uniquement des constantes - Permet le multi-héritage - Ne peuvent pas être instanciées (pas de new maClasseAbstraite() dans le
code). Comprendre à quoi peut servir le constructeur d'une classe
abstraite dans ce cas-là...
- Lors d'un héritage, toutes les méthodes abstraites doivent être
rédéfinies dans la classe fille, ou la classe fille doit être également
abstraite.
- En java, l'héritage se fait avec le mot clé extends, l'implémentation
d'une interface avec implements. Les méthodes d'une interface ne doivent
pas être mentionnées comme abstraites, c'est implicite.
- Une classe contenant une méthode abstraite dot être définie abstraite.
Une classe peut être définie abstraite sans posséder de méthode
abstraite, mais cela n'a pas beaucoup de sens.
- En UML, le nom d'une classe abstraite est en italique ou précédé de
. « L'héritage » d'une interface se note avec une flèche en
pointillé.
Ex :
classe abstraite :
public abstract class B
{
...
public abstract void uneMethodeAbstraite() ; // ne pas la définir
...
}
interface :
public interface C
{
...
public void queDesMethodesAbstraites() ; // ne pas la définir
...
}
public class D extends B implements C, MouseListenener
{
...
public void uneMethodeAbstraite()
{
// la définir
}
public void queDesMethodesAbstraites()
{
// la définir
}
// définir les méthodes de MouseListener...
...
}
3. Interfaces graphiques : corrigés sur le site
( SFP - batiment P4 e-mail : nackerma@ulb.ac.be (à utiliser de préférence)
ext. : 36.35 ou 31.67
( SLN - bâtiment L, porte E, niveau 3 e-mail : lmundele@ulb.ac.be ext :
22.97