1er septembre 2002
Prof. Eric Lefrançois
Ecole d’Ingénieurs de l’Etat de Vaud
Programmation Objet
Avec Java
ELS - 27 octobre 2002 - Entete.fm
POO avec Java - I -
Contenu
1PRÉAMBULE 1
2OBJETS ET TYPES ABSTRAITS 3
2.1 LA PROGRAMMATION-OBJET: NOTION «DOBJET»4
Un exemple: un objet de type «Rectangle» 4
Le cycle de vie d’un objet 6
2.2 TYPE ABSTRAIT: DÉFINITION 7
Un type abstrait définit une «structure de données».. 7
Un type abstrait est défini par un «ensemble d’opérations».. 8
Définition du type abstrait «Rectangle» en Java 11
Implémentation du type abstrait en Java 13
Création de l’objet: l’opérateur «new» 15
Destruction de l’objet: le message «finalize()»15
Structure d’une classe Java 16
Encapsulation de la structure d’informations 17
Un type abstrait peut être défini directement par une classe 18
Type courant et type déclaré 18
Interface ou classe ? 20
Une interface pour déclarer des constantes de configuration 23
2.3 SÉMANTIQUE DES OPÉRATIONS 24
Description informelle de la sémantique 25
Description formelle de la sémantique 25
La notion «d’expression» 25
Exprimer la sémantique des opérations 27
La programmation «par contrat» 28
Moyens mis à disposition en Java: instruction «assert»29
Un exemple de programmation par contrat avec l’opération «agrandir»30
2.4 DÉFINIR LA STRUCTURE DE DONNÉES: LES TYPES DE JAVA 31
Les types primitifs 32
Les types «objets» 34
Partage d’objets, copie superficielle et copie profonde 35
Les primitifs sont manipulés par valeur 35
Les objets sont manipulés par référence 36
Copie d’objets 36
Passage de paramètres 38
e-Quest Analyse - II -
2.5 VARIABLES DE CLASSES ET VARIABLES DINSTANCE 39
Initialisation d'une variable de classe 41
Accéder aux variables de classe et aux variables d’instance 41
Le constructeur de classe 41
2.6 POURQUOI «ABSTRAIT» ? 42
2.7 INTÉRÊT DES TYPES ABSTRAITS 42
On s’intéresse d’abord aux opérations.. 42
Indépendance par rapport à l’implantation.. 43
Un exemple.. ré-implantation de la classe «Rectangle» 43
2.8 LA PROGRAMMATION OBJET ET LES TYPES ABSTRAITS 45
Programmation objet versus programmation procédurale 45
Un objet est-il un type abstrait ? 47
Classes et types abstraits 48
2.9 LA STRUCTURE DUN PROGRAMME 48
Les paquetages 48
Organisation des fichiers sources 50
Amorce de l’application: la classe principale (main)50
3HÉRITAGE ET POLYMORPHISME 53
3.1 JAVA ET LE MÉCANISME DHÉRITAGE 54
Héritage simple contre héritage multiple 54
Héritage simple en Java 56
Un exemple théorique 58
Héritage: quel intérêt? 59
Une meilleure structuration du programme 59
La réutilisation de code 59
L'héritage et l'utilisation de la mémoire 59
Edition de liens dynamique 60
Objets: type de déclaration et type courant 61
3.2 UN BILAN SUR LES MODES DE PROTECTION 64
Encapsulation 65
Le mode privé: «private» 65
Le mode public: «public» 66
Le mode protégé: «protected» 66
Le mode «paquetage »: mode par défaut 68
Conseils et recommandations 68
3.3 ENCHAÎNEMENT DES CONSTRUCTEURS 71
Invocation implicite du constructeur de la superclasse 71
Le constructeur par défaut 73
3.4 BIEN UTILISER L'HÉRITAGE 74
L'héritage, vu comme un outil de spécialisation 74
La relation «est-un» 77
Le sous-typage 78
Rappel : la notion de type 79
Notion de sous-type 79
La règle de substitution 79
3.5 LA REDÉFINITION DES MÉTHODES 80
Redéfinition et surcharge: parfois la confusion 80
Redéfinition: répondre à la règle de substitution 82
Premier corollaire: est-il possible de changer le mode de protection ? 83
e-Quest Analyse - III -
Deuxième corollaire: les exceptions et la redéfinition 84
Interdire la redéfinition et bloquer l’héritage 84
Les « méthodes finales» 84
Les «classes finales» 85
3.6 LE POLYMORPHISME 85
Généralités 85
Comparons Java, Smalltalk et C++ 86
De l'intérêt du polymorphisme 87
Méthodes et classes abstraites 87
3.7 MASQUAGE DUNE VARIABLE DINSTANCE 92
3.8 LE MOT-CLÉ «SUPER»93
3.9 VARIABLES DE CLASSE ET HÉRITAGE 94
3.10 MÉTHODES DE CLASSE ET HÉRITAGE 95
4LES MODÈLES DE CONCEPTION 97
4.1 EN PRÉLIMINAIRE 98
4.2 LE MODÈLE MVC : «MODELE-VUE-CONTRÔLEUR»98
Modèle 99
Vue 99
Relations entre le MODELE et les VUES 101
Le modèle «Observateur» 101
Diagramme de classe 102
Une classe «Observable» réutilisable 102
Diagramme de séquence 103
Contrôleur 103
4.3 LE MODÈLE «OBSERVATEUR»104
4.4 LE MODÈLE «COMPOSITE»104
Un exemple: une image graphique 105
Un autre exemple : la hiérarchie des composants de la librairie «awt» de Java 107
5OBJETS ACTIFS 109
5.1 GÉNÉRALITÉS SUR LES THREADS 110
Concurrence ou parallélisme ? 113
Mise en oeuvre des threads en Java 114
5.2 LES THREADS DE LA MACHINE VIRTUELLE 115
5.3 DIAGRAMME DÉTATS ET DE TRANSITIONS 117
Construction d’un thread 117
Lancement d’un thread: start() 117
Blocage d’un thread (sleep(), suspend() et entrée-sortie) 119
Mort d’un thread 120
Récupération d’un thread «mort» par le garbage collector 120
Contrôler l’état d’un autre thread: isAlive() 121
Attendre la terminaison d’un thread: join() 121
5.4 RÉALISER DES OBJETS ACTIFS EN JAVA 121
Les objets passifs 121
Le objets actifs 122
Réalisation d’un «objet actif» en Java 122
Méthode no1: par dérivation de la classe «Thread» 123
1 / 230 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 !