JAVA et POO : Notion d'héritage

Slides:



Advertisements
Présentations similaires
Spécialisation covariante cours et TP. Plan  Introduction  Rappels théoriques  Définition de la covariance  Présentation du modèle servant d'exemple.
Advertisements

Chapitre 5 Administration des accès aux objets dans les unités d'organisation Module S42.
Présentation python : Épisode 4 ● Les objets : héritage ● Introduction à l'héritage ● Un exemple illustrant l'héritage ● Détails sur l'appel de méthode.

1 Programmation Orientée Objet ● Qu'est-ce qu'un objet ● Collaboration des objets ● Les classes ● Relations entre les classes – “Utilise”, “Contient”,
Les profils du SEDA confection de profil avec Agape.
1 Programmation en C++ Cycle de vie ● La vie d'un objet ● Destructeur ● Gestion de mémoire dynamique.
Présentation python : Épisode 4 ● Les objets : héritage ● Introduction à l'héritage ● Un exemple illustrant l'héritage ● Détails sur l'appel de méthode.
MINISTERE DE L’ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE Université d’Adrar Diagramme d’états-transitions Présenté par Sbai Omar Benothman.
Kit de survie Java tous ces exemples sont relatifs à un répertoire java/ app/Forest3.java forest/Tree.java un programme (méthode main) création d'un objet.
Calcul de probabilités
Pourquoi inquiète-t-il les acteurs de terrain?
JAVA.
Modèle objet : les classes
java : l'héritage (rappel)
L’arbre de la vie Page 20 Les relations évolutionnistes d’un groupe d’organismes sont des relations phylogénétiques Darwin: «phylogénie = branches d’un.
7.9 Les entretiens annuels Textes de référence Norme AFNOR NF X § 5 Compétences requises liées aux fonctions 7.9 Les entretiens annuels.
Pas de variable globale
Les notions de classe et d'objet
Détection des erreurs.
Les fondamentaux de la Programmation Orientée Objet
Algorithmique demander jeu du pendu.
MOT Éditeur de modèles de connaissances par objets typés
7.10 Le suivi des évaluations annuelles Textes de référence Norme AFNOR NF X § 5 Compétences requises liées aux fonctions 7.10 Le suivi.
Initiation aux bases de données et à la programmation événementielle
Fonctions.
Principes de programmation (suite)
Polymorphisme : règles
Réalisation d'agents de surveillance Zephir
Langages de programmation TP10
VI. Tri par tas (Heap sort)
Semaine #4 INF130 par Frédérick Henri.
GRAPHISME PAR ORDINATEUR
faces : dessus gauche droite derrière devant dessous
Bonnes pratiques Orienté Objet et Java
Programmation en C++ Classes
Présentation des EJB Enterprise Java Beans.
Notion De Gestion De Bases De Données
Création Et Modification De La Structure De La Base De Données
1.2 dénombrement cours 2.
Langage de modélisation graphique de système
Introduction aux langages formels
Programmation Orientée Objet
Plan du chapitre Diagramme de classes Les extensions syntaxiques
Développement d’applications interactives
Diagrammes UML 420-KE2-LG.
Chapitre 3 : Caractéristiques de tendance centrale
Programmation Android Première application Android
L1 Technique informatique
Révision du format des données
PowerPoint 5 : Circonscriptions et candidats
HÉRITAGE IFT A03.
Les Enigmes de traversées Les Enoncés des problèmes:
Langages de programmation TP11
Windows 7 NTFS.
Reconnaissance de formes: lettres/chiffres
Opérateurs et fonctions arithmétiques Opérateurs de relation Opérateurs logiques Cours 02.
Chapitre 9 L’Héritage.
INTERFACE ET POLYMORPHISME
Arbre binaire.
03/05/2019 L’organisation et la gestion des fichiers sur le site collaboratif Martine Cochet 2SitePleiadeGestionFichiers.
Retour sur les interfaces
Jérôme CUTRONA PHP objet Jérôme CUTRONA 08:30:34 Programmation Web
<Nom de la colonie>
<Nom de la colonie>
DICTIONNAIRES (MAPS).
MOT Éditeur de modèles de connaissances par objets typés
Champs de questionnements des programmes du lycée : équilibre et proportionalité, visées, organisation et interactions (enseignement optionnel et enseignement.
Séquence 1:Analyse du système d’information comptable
Transcription de la présentation:

JAVA et POO : Notion d'héritage

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 (éléments communs)

La généralisation exemple Comparons les comptes chèques et les comptes d'épargne : 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 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 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

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 G é n r a l i s t o Animal AnimalSauvage - lieuDeVie - modeAlimentation S p é c i a l s t o n 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

Toutes les classes en java forment un arbre d'héritage 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

java : l'héritage Définir une classe dérivée Complétez les classes 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

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 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 du constructeur fils. class CompteEpargne extends CompteBancaire { private double taux; CompteEpargne (double soldeInit, double tauxInit) { super ( soldeInit ); taux = tauxInitial; } //... class CompteBancaire { private double solde; CompteBancaire ( double soldeInitial ) { solde = soldeInitial; } // .. Appel du constructeur de CompteBancaire

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

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.