21
1 Université de la Manouba Université de la Manouba Ecole Supérieure de Commerce Electronique Ecole Supérieure de Commerce Electronique 2 ème année E-Serv et E-com 2009/2010 Programmation Orientée Objet Réalisé par : Nabil KHEMIRI [email protected]

Programmation Orientée Objet - Mahjoubi Ahmedmahjoubi.weebly.com/uploads/5/1/1/2/5112616/p.o.o_s1.pdf · 9 Introduction : L’approche objet Idée de base de l’Approche Orientée

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Programmation Orientée Objet - Mahjoubi Ahmedmahjoubi.weebly.com/uploads/5/1/1/2/5112616/p.o.o_s1.pdf · 9 Introduction : L’approche objet Idée de base de l’Approche Orientée

1

Université de la ManoubaUniversité de la ManoubaEcole Supérieure de Commerce Electronique Ecole Supérieure de Commerce Electronique

2ème année E-Serv et E-com 2009/2010

Programmation Orientée Objet

Réalisé par : Nabil KHEMIRI

[email protected]

Page 2: Programmation Orientée Objet - Mahjoubi Ahmedmahjoubi.weebly.com/uploads/5/1/1/2/5112616/p.o.o_s1.pdf · 9 Introduction : L’approche objet Idée de base de l’Approche Orientée

2

Le Module P.O.OLe Module P.O.O

Algorithmique

Langage C

Pré requis : Pré requis :

Déroulement du moduleDéroulement du module

Cours : 1.5 h

TD/15 : 1.5 h

TP/15 : 1.5 h

Page 3: Programmation Orientée Objet - Mahjoubi Ahmedmahjoubi.weebly.com/uploads/5/1/1/2/5112616/p.o.o_s1.pdf · 9 Introduction : L’approche objet Idée de base de l’Approche Orientée

3

Plan du cours Plan du cours

IntroductionClasses et objetsHéritageObject, Interfaces, classes imbriquéesExceptionsEntrée-sortie

Introduction à Swing

Page 4: Programmation Orientée Objet - Mahjoubi Ahmedmahjoubi.weebly.com/uploads/5/1/1/2/5112616/p.o.o_s1.pdf · 9 Introduction : L’approche objet Idée de base de l’Approche Orientée

4

Introduction : Introduction : évolution du logiciel

Année 1950 1980• Problème : comment développer du « hardware» permettant de diminuer le coût des traitements et du stockage de données.

Depuis 1980

• La puissance de calcule a beaucoup augmenté et les coûts ont diminués. • Problème : comment réduire le coût de production des logiciels et améliorer leur qualité. • Problème : Importance croissante du logiciel et de son évolution.

Page 5: Programmation Orientée Objet - Mahjoubi Ahmedmahjoubi.weebly.com/uploads/5/1/1/2/5112616/p.o.o_s1.pdf · 9 Introduction : L’approche objet Idée de base de l’Approche Orientée

5

IntroductionIntroduction Complexité des développements logiciels

Pas de distribution Batch Logiciel client

Multi-utilisateurs, Temps réel, Bases de données, Progiciel

Système distribués, Système « Intelligent », Informatique grand public

Système experts, Machines parallèles, Simulateurs

1950 1960 1970 1980 1990 2000

Page 6: Programmation Orientée Objet - Mahjoubi Ahmedmahjoubi.weebly.com/uploads/5/1/1/2/5112616/p.o.o_s1.pdf · 9 Introduction : L’approche objet Idée de base de l’Approche Orientée

6

Introduction : Cycle de vie d’un logicielIntroduction : Cycle de vie d’un logiciel

Analyse

Pré-analyse

Analyse Développement

Conception

Programmation

TesteMaintenance

Maintenance

Page 7: Programmation Orientée Objet - Mahjoubi Ahmedmahjoubi.weebly.com/uploads/5/1/1/2/5112616/p.o.o_s1.pdf · 9 Introduction : L’approche objet Idée de base de l’Approche Orientée

7

Il est très difficile de faire évoluer et développer un logiciel. Par conséquent, il doit répondre à un certains de facteurs de qualité pour minimiser les coûts d’évolution et de développement.

J’ai besoin d’un

logiciel

• La correction : « le système est supposé faire ce pourquoi il a été conçu », • La robustesse : capacité d’un logiciel à répondre à des situations anormales, • L’extensibilité : facilité du logiciel à s’adapter aux changements de spécification, • La ré-utilisabilité : capacité des éléments du logiciel à être réutilisés, • La compatibilité : facilité avec laquelle les éléments du logiciel peuvent être combinés, • L’efficacité : capacité du logiciel à utiliser le minimum de ressources, • La portabilité : facilité avec laquelle un logiciel peut s’exécuter sur différente palte-formes.

Page 8: Programmation Orientée Objet - Mahjoubi Ahmedmahjoubi.weebly.com/uploads/5/1/1/2/5112616/p.o.o_s1.pdf · 9 Introduction : L’approche objet Idée de base de l’Approche Orientée

8

IntroductionIntroduction Branchement par Goto : Assembleur

Si nous sommes en présence d’une grosse application, le programme à réaliser sera alors gros et complexe : Lisibilité, maintenance et réutilisation du code ne sont pas favorisées.

Programmation structurée : C, PASCAL, etc.

Concevoir un ensemble de fonctions (et procédures) permettant de résoudre un problème.

Trouver la manière appropriée de stocker les données.

Programmes = Algorithmes + Structures de données

Réutilisation de fonctions, Maintenance : lorsque l’on désire changer les structures de données. Effets de bord : plusieurs procédures agissent sur la même donnée.

Page 9: Programmation Orientée Objet - Mahjoubi Ahmedmahjoubi.weebly.com/uploads/5/1/1/2/5112616/p.o.o_s1.pdf · 9 Introduction : L’approche objet Idée de base de l’Approche Orientée

9

Introduction : Introduction : L’approche objet

Idée de base de l’Approche Orientée Objet (A.O.O.) repose sur l’observation de la façon dont nous procédons dans notre vie de tous les jours. Modéliser le réel : objet

Objet : Un objet représente une entité du monde réel, ou de monde virtuel dans le cas d’objets immatériels, qui se caractérisent pas une identité, des états significatifs et par un comportement.

Nous sommes entourés d'objets que nous manipulons. Il nous importe peu de savoir comment ils sont fabriqués.

Objet

Attribut1, Atribut2,Attribut3, …

Métode1Méthode2Méthode3

Page 10: Programmation Orientée Objet - Mahjoubi Ahmedmahjoubi.weebly.com/uploads/5/1/1/2/5112616/p.o.o_s1.pdf · 9 Introduction : L’approche objet Idée de base de l’Approche Orientée

10

L’approche objet

Les objectifs : Répondre aux critères de modularité c’est-à-dire

prendre en compte :• Les facteurs logiciels qui requièrent des architectures logiciel décentralisées : la réutilisabilité , l’extensibilité.

Répondre aux critères de fiabilité c’est-à-dire prendre en compte :

• les facteurs logiciels qui sont les plus importants aujourd’hui et qui manquent le plus : la correction, la robustesse.

Un programme est vu comme un ensemble d’entités, une société d’entités. Au cours de son exécution, ces entités collaborent en s’envoient des messages dans un but commun.

Page 11: Programmation Orientée Objet - Mahjoubi Ahmedmahjoubi.weebly.com/uploads/5/1/1/2/5112616/p.o.o_s1.pdf · 9 Introduction : L’approche objet Idée de base de l’Approche Orientée

11

L’approche objet

public class etudiant { String nom; int promo; String traiterExam(String enonce) {…}}

public class prof { String nom; String faireSujetExam() {…} int corrigerExam(String copie) {…}

}

Attributs

Méthodes

Page 12: Programmation Orientée Objet - Mahjoubi Ahmedmahjoubi.weebly.com/uploads/5/1/1/2/5112616/p.o.o_s1.pdf · 9 Introduction : L’approche objet Idée de base de l’Approche Orientée

12

PProgrammation rogrammation OOrientée rientée OObjet : P.O.Objet : P.O.O

Objet Classe Encapsulation Héritage Surcharge Polymorphisme

Page 13: Programmation Orientée Objet - Mahjoubi Ahmedmahjoubi.weebly.com/uploads/5/1/1/2/5112616/p.o.o_s1.pdf · 9 Introduction : L’approche objet Idée de base de l’Approche Orientée

13

P.O.O : ObjetP.O.O : Objet

Objet = Attributs + méthodes Ex. un objet "Télévision"

• ses états = { allumé/éteint, chaîne courante, volume du son },

• ses comportements = { allumer, changer de chaîne, changer de volume du son, éteindre }

Page 14: Programmation Orientée Objet - Mahjoubi Ahmedmahjoubi.weebly.com/uploads/5/1/1/2/5112616/p.o.o_s1.pdf · 9 Introduction : L’approche objet Idée de base de l’Approche Orientée

14

P.O.O : ClasseP.O.O : Classe

Classe : processus d’abstraction.• On peut faire l'analogie avec la philosophie platonicienne : tout le monde à une idée de ce qu'est un cheval, c'est un animal, qui a quatre pattes, une crinière, etc. L'idée "cheval" est une classe.

• Une classe est un élément du logiciel qui décrit un type abstrait de données.

• Une classe est un modèle de définition pour des objets. • ayant même structure (même ensemble d'attributs),

• ayant même comportement (mêmes opérations, méthodes),• ayant une sémantique commune.

Notation UML

Page 15: Programmation Orientée Objet - Mahjoubi Ahmedmahjoubi.weebly.com/uploads/5/1/1/2/5112616/p.o.o_s1.pdf · 9 Introduction : L’approche objet Idée de base de l’Approche Orientée

15

P.O.O : ClasseP.O.O : Classe

Class Personne {

String Nom;

String Prenom;

int age;

Void afficheNom() {…};

}

Objets

instanciation

Nom : aliPrenom : yousfiAge : 24

Nom : MohamedPrenom : kefiAge : 26

Nom : InesPrenom : jbaliAge : 22

Une classe peut être réutilisée pour instancier plusieurs objets

Page 16: Programmation Orientée Objet - Mahjoubi Ahmedmahjoubi.weebly.com/uploads/5/1/1/2/5112616/p.o.o_s1.pdf · 9 Introduction : L’approche objet Idée de base de l’Approche Orientée

16

P.O.O : EncapsulationP.O.O : Encapsulation Principe :

Consiste à regrouper dans le même objet informatique des structures de données particulières et les méthodes qui leur sont spécifiques. Isolement et dissimulation des détails d’implémentation.

Les méthodes n’ont jamais accès directement aux champs d’instance dans une classe autre que la leur. Les programmes doivent interagir avec les données d’un objet uniquement par l’intermédiaire des méthodes de l’objet.

Objectifs : Réutilisation et Sécurité : une classe peut complètement modifier la manière dont elle modélise et stocke ses données, mais tant qu’elle continue à offrir les mêmes méthodes pour les manipuler, les autres objets n’en sauront rien et ne s’en préoccuperont pas

Page 17: Programmation Orientée Objet - Mahjoubi Ahmedmahjoubi.weebly.com/uploads/5/1/1/2/5112616/p.o.o_s1.pdf · 9 Introduction : L’approche objet Idée de base de l’Approche Orientée

17

P.O.O : EncapsulationP.O.O : Encapsulation

Page 18: Programmation Orientée Objet - Mahjoubi Ahmedmahjoubi.weebly.com/uploads/5/1/1/2/5112616/p.o.o_s1.pdf · 9 Introduction : L’approche objet Idée de base de l’Approche Orientée

18

P.O.O : HéritageP.O.O : Héritage Le développement de logiciel nécessite la mise en oeuvre d’un grand nombre de classes : beaucoup sont des variantes d’autres.

• idée: il est nécessaire d’utiliser un mécanisme de classification pour maîtriser la complexité potentielle qui peut en résulter.• ce mécanisme s’appelle l’héritage.

Personne

Etudiant Enseignant

Utilisation de l’héritage :• dans le sens “spécialisation” pour réutiliser par modification incrémentielle les descriptions existantes. • dans le sens “généralisation” pour abstraire en factorisant les propriétés communes aux sous-classes, • L’héritage permet d’écrire une classe « Etudiant » qui se comporte dans les grandes lignes comme la classe A, mais avec quelques différences sans toucher au code source de « Personne ». On a besoin seulement du code compilé de « Personne ».

Page 19: Programmation Orientée Objet - Mahjoubi Ahmedmahjoubi.weebly.com/uploads/5/1/1/2/5112616/p.o.o_s1.pdf · 9 Introduction : L’approche objet Idée de base de l’Approche Orientée

19

P.O.O : HéritageP.O.O : Héritage

La sous classe (ex. Etudiant) possède des attributs et des méthodes définis dans la superclasse (ex. Personne).

Ex.

public class Personne { String nom;

public void envoyerMail( String adr, String message) { ….}

}

public class Etudiant extends Personne { String noEtudiant;

Etudiant(String nom, String noEtudiant) { nom = nom; noEtudiant = noEtudiant; envoyerMail("[email protected]", "creation de dossier : " + nom); }}

Page 20: Programmation Orientée Objet - Mahjoubi Ahmedmahjoubi.weebly.com/uploads/5/1/1/2/5112616/p.o.o_s1.pdf · 9 Introduction : L’approche objet Idée de base de l’Approche Orientée

20

P.O.O : PolymorphismeP.O.O : Polymorphisme

Le polymorphisme est la capacité d’un objet à posséder plusieurs formes.

Polymorphisme = poly + morphisme

plusieurs forme

Marcher sur la queue d'un chat => il miaule, Marcher sur la queue d'un chien => il aboie.

Même nom de fonction, plusieurs implantations. Une classe peut "redéfinir" (c’est-à-dire modifier) certaines des méthodes héritées de sa classe de base (classe mère).

Page 21: Programmation Orientée Objet - Mahjoubi Ahmedmahjoubi.weebly.com/uploads/5/1/1/2/5112616/p.o.o_s1.pdf · 9 Introduction : L’approche objet Idée de base de l’Approche Orientée

21

Les Langages Orientés Objets

Un Processus d'Analyse Orientée Objet

Un langage est orienté objet s’il possède les mécanismes supportant le style de programmation orienté objet. Points de repères historiques :

• 1980 : SmallTalk 80 de Goldberg du Xerox Palo Alto Research Center.• 1983 : C++ de Stroustrup de ATT & Bell – c’est aussi le C ANSI qui est crée à cette époque.• 1985 : Commercialisation C++ Version 1 – liaison dynamique, surcharge des opérateurs, références.• 1989 : C++ Version 2 – héritage multiple• 1995 : JAVA

1. Répertorier les objets2. En déduire les classes auxquelles ces objets appartiennent3. Architecturer l'ensemble des classes regroupant les données ou procédures communes à certaines classes d’où elles héritent.