U.F.R Math´ematiques de la D´ecision
Programmation objet
Partie II
Andr´e Casadevall
Mai 2001
p. 2 AJ.C – 12 juin 2001
Table des mati`eres
3 H´eritage 5
3.1 Introduction - L’h´eritage, qu’est-ce que c’est ? . . . . . . . . . . . . . . . . . . . . . . 5
3.2 Retour sur les constructeurs et sur l’utilisation de this . . . . . . . . . . . . . . . . 6
3.2.1 Les constructeurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.2.2 Une autre utilisation de this . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.3 M´ethodes et h´eritage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.3.1 M´ethodes h´erit´ees - ethodes propres . . . . . . . . . . . . . . . . . . . . . . 11
3.3.2 Sur-classes, sous-classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.3.3 Red´efinition des m´ethodes d’instance . . . . . . . . . . . . . . . . . . . . . . . 13
3.3.4 Appel d’une ethode d’instance erit´ee et/ou red´efinie . . . . . . . . . . . . 16
3.3.5 Red´efinition des m´ethodes de classe . . . . . . . . . . . . . . . . . . . . . . . 18
3.3.6 Utilisation de super . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.4 Surcharge des ethodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.4.1 Surcharge v.s red´efinition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.4.2 S´election et ex´ecution d’une ethode . . . . . . . . . . . . . . . . . . . . . . 25
3.5 Variables d’instance et h´eritage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.5.1 Acc`es aux variables d’instance . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.5.2 Des constructeurs pour les classes-fille - super( ) . . . . . . . . . . . . . . . 32
4 Packages et r`egles d’acc`es 33
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.2 Utilisation et cr´eation de packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.2.1 Un peu de vocabulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.2.2 Acc`es aux classes d’un package . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.2.3 La variable d’environnement CLASSPATH . . . . . . . . . . . . . . . . . . . . . 38
4.2.4 Cr´eer un package - Ajouter une classe `a un package . . . . . . . . . . . . . . 39
4.3 Acc`es aux ´el´ements d’une classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.3.1 Modificateurs usuels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.4 Contrˆole de la red´efinition et de l’h´eritage : final et abstract . . . . . . . . . . . . 40
4.4.1 Utilisation de final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.4.2 Classes et ethodes abstraites . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5 Exceptions 43
5.1 Des exceptions, pourquoi faire ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.1.1 Objectif des exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.1.2 Cadre en´eral de l’utilisation des exceptions . . . . . . . . . . . . . . . . . . . 45
5.2 Les classes d’exception de java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.3 Exceptions et eritage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
TABLE DES MATI`
ERES
5.3.1 Erreurs multiples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.3.2 M´ethodes red´efinies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
6 Flux et fichiers 49
6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6.1.1 Flux de donn´ees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6.1.2 Fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
6.2 Quelques classes de java.io . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
6.3 Exemples d’utilisation des classes de java.io . . . . . . . . . . . . . . . . . . . . . . 53
6.3.1 Fichiers de caract`eres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
6.3.2 Fichiers d’octets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
6.3.3 Utilisation de IOException . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
6.3.4 Les flux in et out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
6.3.5 Fichiers d’objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
p. 4 AJ.C – 12 juin 2001
3
H´eritage
Sommaire
3.1 Introduction - L’h´eritage, qu’est-ce que c’est ? . . . . . . . . . . . . . . . 5
3.2 Retour sur les constructeurs et sur l’utilisation de this . . . . . . . . . 6
3.2.1 Les constructeurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.2.2 Une autre utilisation de this . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.3 M´ethodes et eritage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.3.1 M´ethodes erit´ees - m´ethodes propres . . . . . . . . . . . . . . . . . . . . . 11
3.3.2 Sur-classes, sous-classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.3.3 Red´efinition des ethodes d’instance . . . . . . . . . . . . . . . . . . . . . . 13
3.3.4 Appel d’une m´ethode d’instance erit´ee et/ou red´efinie . . . . . . . . . . . 16
3.3.5 Red´efinition des ethodes de classe . . . . . . . . . . . . . . . . . . . . . . 18
3.3.6 Utilisation de super . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.4 Surcharge des ethodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.4.1 Surcharge v.s red´efinition . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.4.2 S´election et ex´ecution d’une ethode . . . . . . . . . . . . . . . . . . . . . 25
3.5 Variables d’instance et h´eritage . . . . . . . . . . . . . . . . . . . . . . . . 28
3.5.1 Acc`es aux variables d’instance . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.5.2 Des constructeurs pour les classes-fille - super( ) . . . . . . . . . . . . . . 32
3.1 Introduction - L’h´eritage, qu’est-ce que c’est ?
L’h´eritage est la propri´et´e permet `a une classe d’utiliser des ressources, des m´ethodes en parti-
culier, qui sont d´efinies dans une classe existante. La nouvelle classe est appel´ee classe-fille de la
classe existante (on dit aussi qu’elle h´erite, qu’elle ´etends ou encore qu’elle d´erive de cette derni`ere).
La classe initiale est naturellement appel´ee classe-m`ere de la nouvelle classe.
Nous avons rencontr´e dans les chapitres pr´ec´edents des m´ethodes,equals ou toString par
exemple, qu’il est possible d’utiliser dans une classe alors mˆeme qu’elles n’y sont pas explicitement
d´efinies. Ces deux m´ethodes sont en fait d´efinies dans la classe Object : en java toutes les classes
d´erivent de la classe Object.
L’h´eritage ne se limite pas `a la seule r´eutilisation de m´ethodes. L’h´eritage est aussi un moyen
pour ´etendre le comportement d’une classe donn´ee en lui associant des classes-filles plus sp´ecialis´ees :
soit en ajoutant de nouvelles m´ethodes ;
soit en modifiant certaines m´ethodes de la classe-m`ere ;
1 / 58 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !