La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Modèle objet : les classes

Présentations similaires


Présentation au sujet: "Modèle objet : les classes"— Transcription de la présentation:

1 Modèle objet : les classes
Voici quelques éléments : Véhicule, voiture, moto, 4*4, monospace Personne, étudiant, salarié, commerçant Animal, lion, chien, chat, tigre, poisson rouge Décrivez les classes correspondantes

2 Héritage par la généralisation
La généralisation c'est : Factoriser les éléments communs d'un ensemble de classe : Attributs Méthodes Parmi les éléments précédents, faites apparaître l'héritage par généralisation

3 La généralisation exemple
Comparons les comptes chèques et les comptes d'épargne : calculerInterets ()‏ crediterInterets ()‏ changerTaux ()‏ deposer ()‏ retirer ()‏ taux interets solde CompteEpargne changerDecouvert ()‏ decouvertAutorise CompteCheque Appliquez le principe de généralisation

4 Modèle objet : l'héritage
Création d'une classe regroupant les caractéristiques communes Tous les attributs de la classe parent (super classe) sont des caractéristiques d'un objet créé à partir de la classe enfant calculerInterets ()‏ crediterInterets ()‏ changerTaux ()‏ taux interets CompteEpargne changerDecouvert ()‏ montantDecouvertAutorise CompteCheque deposer ()‏ retirer()‏ solde CompteBancaire L'héritage se représente avec un trait terminé par un triangle du côté de la classe la plus générale

5 Modèle objet : la spécialisation
Voici un autre ensemble d'éléments : Side car, bicyclette, voiture de sport Travailleur indépendant, écolier, collégien, retraité Loup, herbivore, diplodocus, licorne Compléter l'organisation des classes précédentes avec celles-ci

6 Modèle objet : la spécialisation
Une classe spécialisée hérite de : Toutes les caractéristiques de la classe parent A le même comportement que la classe parent A ses comportements propres Grâce à ses caractéristiques personnelles Attributs méthodes

7 généralisation / spécialisation
Héritage : généralisation / spécialisation La généralisation exprime la relation : est-un entre une classe et sa super classe La spécialisation définit un comportement supplémentaire Animal AnimalSauvage - lieuDeVie - modeAlimentation Super classe

8 Modèle objet : l'héritage
L'héritage c'est : Le mécanisme permettant de dériver une classe à partir d'une classe existante L'héritage permet de classer Étendre structurellement et comportementalement une classe Permet de construire Réutiliser le code d'une classe existante

9 Modèle objet : l'héritage
Classe dérivée (ou classe enfant)‏ Hérite de toutes les caractéristiques de son (ses) ancêtre(s)‏ Peut avoir des caractéristiques propres Peut redéfinir des caractéristiques héritées

10 java : l'héritage Héritage simple :
Une classe ne peut hériter que d'une autre classe Toutes les classes en java forment un arbre d'héritage Dont le sommet est la classe Object Une classe déclarée sans relation d'héritage hérite quand même de la classe Object

11 l'héritage et les accès parents
public class A { public void hello() { System.out.println("Hello"); } public class B extends A { public void bye() System.out.println("Bye Bye"); public class C extends B { public void oups() System.out.println("oups!"); Donnez le diagramme de classe A partir d'une instance de la classe C, comment afficher les messages des trois classes ?

12 java : l'héritage Complétez les classes Définir une classe dérivée
extends par défaut : extends Object class CompteBancaire { } class CompteEpargne extends CompteBancaire { class TestCompteEpargne { public static void main( String [] arg ) { //... CompteEpargne ce; double interet; ce = new CompteEpargne(); ce.deposer( ); interet = ce.calculerInterets(); } CompteBancaire.java TestCompteEpargne.java CompteEpargne.java Complétez les classes

13 java : l'héritage Appel du constructeur de la classe parent:
En l’absence de constructeur, appel le constructeur par défaut de la classe mère Le compilateur insère un appel à la méthode super()‏ Conseil: Pour éviter tout problème, toujours définir un constructeur !! Pour invoquer un constructeur de la classe mère : mot clé super()‏ super(...) : doit être la première instruction class CompteBancaire { private double solde; CompteBancaire ( double soldeInitial ) { solde = soldeInitial; } // .. class CompteEpargne extends CompteBancaire { private double taux; CompteEpargne (double soldeInit, double tauxInit) { super ( soldeInit ); taux = tauxInitial; //...

14 l'arbre d'héritage Ordre d'appel des constructeurs
L'appel à un constructeur de la super classe doit toujours être la première instruction dans le corps du constructeur Si la première instruction d'un constructeur n'est pas un appel explicite à l’un des constructeurs de la superclasse, alors JAVA insère implicitement l'appel super()‏

15 l'arbre d'héritage (suite)‏
Chaque fois qu'un objet est créé, les constructeurs sont invoqués en remontant en séquence de classe en classe dans la hiérarchie jusqu'à la classe Object C'est le corps du constructeur de la classe Object qui est toujours exécuté en premier, suivi du corps des constructeurs des différentes classes en redescendant dans la hiérarchie.

16 l'arbre d'héritage (exemple)‏

17 l'héritage et les constructeurs
Si une classe ne définit pas de constructeur, elle en possède un par défaut Sans paramètres Contenant uniquement l'instruction super()‏ public class A extends Object { String nom; // méthodes String getNom() return nom; } ... public class Object { public Object()‏ ... } public A() { super(); }

18 Quelques règles de visibilité
Rappel : Les valeurs des attributs privés ne sont modifiables QUE dans la classe elle-même. Or, une classe dérivée DOIT avoir accès à tous les attributs de la classe mère. Les attributs de la classe mère ne doivent donc pas être privés, mais protégés.

19 Quelques règles de visibilité
Pour déclarer un attribut protégé, on utilise le mot clef : protected Le symbole pour la représentation graphique est le #

20 Quelques règles de visibilité
ClasseMère ClasseDérivée public défaut protected private Accessible dans la ClasseMère Accessible dans la ClasseDérivée oui non Les qualificatifs s'appliquent aux attributs et aux méthodes

21 Rappel de la symbolique
Symbole Signification + public - private # protected La classe Lion hérite de la classe Animal. Lion est un Animal

22 Complétez les classes avec les constructeurs manquants.
Une méthode afficher() pour chaque classe. Complétez le diagramme de classe. Une classe de test.


Télécharger ppt "Modèle objet : les classes"

Présentations similaires


Annonces Google