ENP d’Oran -Informatique- Ingénierie et Management des Systèmes d’Information R
ENP d’Oran -Informatique- Ingénierie et Management des Systèmes d’Information RAPPEL SUR LES CONCEPTS OBJETS Dr E.I. Djebbar Département de Génie des systèmes Ecole Nationale Polytechnique d’Oran Programmation Objet Avancée (POA) ENP d’Oran -Informatique- Ingénierie et Management des Systèmes d’Information Objectifs de l’enseignement • RAPPEL SUR LES CONCEPTS OBJETS : CLASSES, INSTANCES, ATTRIBUTS, METHODES… Programmation Objet Avancée (POA) ENP d’Oran -Informatique- Ingénierie et Management des Systèmes d’Information Comparaison des deux topologies de programmation Programmation Objet Avancée (POA) ENP d’Oran -Informatique- Ingénierie et Management des Systèmes d’Information Définition POO • La POO est une méthode d’implémentation dans laquelle les programmes sont organisés sous formes de collections coopératives d’objets, dont chacun représente une instance d’une classe quelconque et dont toutes les classes sont membres d’une hiérarchie de classes unis à travers des relations d’héritage. Programmation Objet Avancée (POA) ENP d’Oran -Informatique- Ingénierie et Management des Systèmes d’Information Exemple Programmation Objet Avancée (POA) ENP d’Oran -Informatique- Ingénierie et Management des Systèmes d’Information Programmation objet : classe et instance Classe • Type d'objet (données + opérations pour les manipuler) • Ex. : classe « point » dans le plan (c.-à-d. en dim 2) • Données = deux coordonnées cartésiennes (x,y) • Opérations = déplacer, calculer la norme (distance à (0,0)), ... • En général : 1 fichier ~ 1 classe Instance • Exemplaire de la classe • Ex. : un point en (3,5), un en (-2,7), un autre en (3,5) ... Programmation Objet Avancée (POA) ENP d’Oran -Informatique- Ingénierie et Management des Systèmes d’Information Programmation objet : champ et méthode Champ • Attribut de l'objet • Ex. : coordonnée x, coordonnée y • (on dit aussi « variable d'instance ») Méthode • Opération pour manipuler les données (~ fonction) • Ex. : déplacer(dx,dy), norme() Programmation Objet Avancée (POA) ENP d’Oran -Informatique- Ingénierie et Management des Systèmes d’Information Exemple en Java : classe Point class Point { double x, y; // valeur 0 par défaut double norme() { return Math.sqrt(x*x+y*y); } void déplacer(double dx, double dy) { x += dx; y += dy; } } Point pt = new Point(); pt.déplacer(3.0,4.0); double nm = pt.norme(); //→ 5.0 Programmation Objet Avancée (POA) ENP d’Oran -Informatique- Ingénierie et Management des Systèmes d’Information Exemple en Java : instances class Point { ... double distance(Point pt) { double dx = x-pt.x; double dy = y-pt.y; return Math.sqrt(dx*dx+dy*dy); } } Point pt1 = new Point().déplacer(7.0,3.0); Point pt2 = new Point().déplacer(4.0,-1.0); double dist = pt1.distance(pt2); //→ 5.0 Programmation Objet Avancée (POA) ENP d’Oran -Informatique- Ingénierie et Management des Systèmes d’Information Exemple 2 Programmation Objet Avancée (POA) ENP d’Oran -Informatique- Ingénierie et Management des Systèmes d’Information Programmation objet : constructeur Constructeur • sorte de méthode • initialise les champs de l'objet lors de sa création • créations/initialisations plus lisibles • permet des initialisations toujours cohérentes Programmation Objet Avancée (POA) ENP d’Oran -Informatique- Ingénierie et Management des Systèmes d’Information Exemple en Java : constructeur class Point { double x, y; // initialisés par défaut à 0 Point(double u, double v) { x = u; y = v; } ... } Point pt1 = new Point(7.0,3.0); Point pt2 = new Point(4.0,-1.0); double dist = pt1.distance(pt2); //→ 5.0 Programmation Objet Avancée (POA) ENP d’Oran -Informatique- Ingénierie et Management des Systèmes d’Information Programmation objet : extension de classe et héritage Extension de classe • version spécialisée d'une classe existante • héritage des champs et méthodes de cette classe • champs et méthodes additionnels • vocabulaire : • sous-classe : la classe étendue • super classe : la classe que l'on étend Programmation Objet Avancée (POA) ENP d’Oran -Informatique- Ingénierie et Management des Systèmes d’Information Héritage • La notion d’héritage est une relation entre différentes classes permettant de définir une nouvelle classe en se basant sur les classes existantes. On parle d’héritage simple lorsqu’une classe fille ne possède qu’une classe mère. On parle d’héritage multiple lorsqu’une classe fille possède plusieurs classes mères. Programmation Objet Avancée (POA) ENP d’Oran -Informatique- Ingénierie et Management des Systèmes d’Information Héritage Programmation Objet Avancée (POA) ENP d’Oran -Informatique- Ingénierie et Management des Systèmes d’Information Exemple en Java : extension class PointColoré extends Point { Couleur couleur; PointColoré(double u, double v, Couleur coul){ x = u; y = v; couleur = coul; } boolean mêmeCouleur(PointColoré pt) { return couleur.equals(pt.couleur); } } Couleur rouge = new Couleur(255,0,0); PointColoré ptRouge = new PointColoré(3,4,rouge); double nm = ptRouge.norme(); //→ 5.0 Programmation Objet Avancée (POA) ENP d’Oran -Informatique- Ingénierie et Management des Systèmes d’Information Programmation objet : masquage de l'information Masquage de l'information • s'applique à : classes, champs et méthodes • visibilité (scope) • public : visible par toutes les classes • private : visible seulement dans la classe • protected : visible seulement par les classes étendues • (package : visible seulement des classes du même package) Programmation Objet Avancée (POA) ENP d’Oran -Informatique- Ingénierie et Management des Systèmes d’Information masquage de l'information (Encapsulation) Programmation Objet Avancée (POA) ENP d’Oran -Informatique- Ingénierie et Management des Systèmes d’Information Exemple en Java : visibilité public class Point { private double x, y; public void déplacer(double dx, double dy) { x += dx; y += dy; } } Point pt = new Point(); pt.x = 3.0; pt.y = 4.0; // Erreur à la compilation pt.déplacer(3.0,4.0); // OK Programmation Objet Avancée (POA) ENP d’Oran -Informatique- Ingénierie et Management des Systèmes d’Information Polymorphisme • Le terme polymorphisme issu du grec signifie la faculté de prendre plusieurs formes. Une entité est polymorphe si à l’exécution elle peut se référer à des instances de classe différentes. • Le polymorphisme est un mécanisme qui permet à une sous classe de redéfinir une méthode dont elle a hérité tout en gardant la même signature de la méthode. Programmation Objet Avancée (POA) ENP d’Oran -Informatique- Ingénierie et Management des Systèmes d’Information Exemple Programmation Objet Avancée (POA) uploads/Management/ rappl-java 1 .pdf
Documents similaires
-
17
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Nov 12, 2022
- Catégorie Management
- Langue French
- Taille du fichier 0.4772MB