Modèle objet : les classes

Slides:



Advertisements
Présentations similaires
Spécialisation/généralisation Héritage Polymorphisme.
Advertisements

Spécialisation/généralisation Héritage Polymorphisme
1 Quelques précisions sur l'héritage. 2 Signification de super.f() appel à la méthode f() masquée super : désigne l'objet appelant comme s'il était de.
Leçon 3 : Héritage IUP 2 Génie Informatique
Chapitre III Héritage (début)
Programmation orientée objet
JavaBeans Réalise par: EL KHADRAOUY TARIK AOUTIL SAFOWAN.
COURS DE PROGRAMMATION ORIENTEE OBJET :
IFT1025, Programmation 2 Jian-Yun Nie
Java Héritage, interfaces.
Classes abstraites et Interfaces
Introduction au paradigme orienté-objet (suite)
Design Pattern: Decorator
1 IFT 6800 Atelier en Technologies dinformation Le langage de programmation Java chapitre 3 : Classes et Objects.
Cours 4 Héritage (suite).
Héritage Lhéritage permet de spécialiser une classe en définissant une relation de type « est une sorte de ». #include comptebancaire.h class CompteEpargne.
Structures de données IFT-2000 Abder Alikacem L’héritage en C++ Département d’informatique et de génie logiciel Édition Septembre 2009.
Héritage Licence Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier.
Héritage et composition
LIFI-Java 2004 Séance du Mercredi 22 sept. Cours 3.
11/04/ L'héritage Cours 7 Cours 7.
Programmation objet La base.
C++ L’HERITAGE Fayçal BRAÏKI DUT INFORMATIQUE.
Les classes présenté par: RAHMOUNE RIME / ZEKRI SELMA.
Le polymorphisme.
Cours du 5 novembre.
Héritage H. Batatia. plan Notion (que signifie l’héritage) Ecriture en java Héritage multiple (interdit) Instanciation (partie propre et partie héritée)
Les classes Introduction aux Langages Orientés Objets
La programmation par objets Principes et concepts Etude de Smalltalk.
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
Introduction à la programmation objet avec java
Héritage Conception par Objet et programmation Java
Introduction à l'orienté objet. Définition Le terme orienté objet siginifie que l'on organise le logiciel comme une collection d'objets organisée en graphe.
C++ Les fonctions. Présentation Utilité : Dès qu'un programme dépasse la centaine de lignes de code, il est pratique de pouvoir le décomposer en plusieurs.
I21 Algorithmique et programmation II David Gross-Amblard, Joël Savelli IEM-uB GFDL 1.2 CM 4/8 v2.
Stéphane Frénot, Frederique Laforest, Frédéric Le-Mouël IJA 1 TD 6 IJA Structures de données JAVA.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Types et opérations fondamentales ● Tests ● Boucles ● Pointeurs, références.
java : l'héritage (rappel)
Environnement de développement des BD
Introduction au Langage Pascal
Programmation en C++ Héritage
Pas de variable globale
Les notions de classe et d'objet
Modélisation Statique
Principes de programmation (suite)
11ième Classe (Mardi, 18 novembre) CSI2572
Langages de programmation TP7
Les fonctions.
JAVA et POO : Notion d'héritage
Langages de programmation TP10
Windows 7 NTFS.
Diagramme de classe UML et C++
Les interfaces en PHP.
Bonnes pratiques Orienté Objet et Java
Programmation en C++ C++ de base
la structure de l’entreprise: Définition : La structure organisationnelle d’une entreprise définie le mode d’organisation entre les différentes unités.
1 RECURSIVITE PRESENTATION Ch. PAUL ALGORITHMIQUE Présentation de la récursivité.
Modélisation avec UML 2.0 Partie II Diagramme de classes.
Programmation Orientée Objet C# El Akel Bouchra ISMONTIC Tanger 2013/2014.
Diagrammes UML 420-KE2-LG.
Les classes et les objets
Paradigme Orienté Objet
Exercice 1 Objectif : Définir une classe avec un constructeur et créer une instance de cette classe. La classe Habitation comprend les attributs : proprietaire.
Programmation Orientée Objet MMI 2ème année – S3
Principes de programmation (suite)
Variables et accès en Java
Bases de données Singleton pour la connexion
Transcription de la présentation:

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

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

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

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

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

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

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

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

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

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

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 ?

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( 100.0 ); interet = ce.calculerInterets(); } CompteBancaire.java TestCompteEpargne.java CompteEpargne.java Complétez les classes

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; //...

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()‏

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.

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

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(); }

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.

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 #

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

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

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.