L’objectif de ce chapitre est de définir la programmation oriente objet ainsi q

L’objectif de ce chapitre est de définir la programmation oriente objet ainsi que les concepts et notions de bases de ce type de programmation I) QU’ESTCE QUE LA PROGRAMMATION ORIENTE OBJET ? La programmation oriente objet est un style de programmation a base d’objet Il a été invente, initialement, pour décrire, modéliser et simuler les systèmes de types dynamique Un système est dit dynamique si son état évolue en fonction du temps et en fonction des états des éléments qui le composent Comme exemple : la faune, la flore, la nature, une salle de classe constituée d’étudiants Un tels système est caractérise par l’interaction entre les différents éléments qui leurs composent Le langage de programmation oriente objet sont généralement utilise pour développer les applications plastique : gestion d’une bibliothèque, applications dynamique, gestion des salles de classes, développement des applications mobiles… Il existe plusieurs langages oriente objet : java, c++, Small talk, python… Ce langage partage l’essentiel des concepts de la P.O.O. Dans un langage impératif (pascal, C) L’exécution d’un programme est une cascade d’appel de fonctions Dans un langage oriente objet, l’exécution d’un programme est une cascade d’échange des sms entre objet : la programmation impérative est base sur l’appel des fonctions alors que la PO est base sur l’échange des messages entre objets II) CONCEPT DE BASE DE LA P.O.O. Une classe et un ensemble d’objet de même nature les noms de classes commencent généralement par une lettre majuscule exemple : Etudiants, client Fournisseur, Client, Un objet est un élément d’une classe Un objet est constitue de champ encore appelé données ou informations la valeur d’un champ peut dépendre soit de l’objet soit de toute la classe. Ainsi on distingue 2 catégories de champs : 1ere catégories : champ d’instances avec pour instructions similaires (champ d’instance, données d’instance, et information d’instance) La valeur d’un champ d’instance dépend uniquement de l’objet. Comme exple de champ d’instance de la classe étudiant ont peut citer : nom, prénom, sexe, âge… 2ieme catégories : champ de classe (informations de classes, donnes de classes) Comme exemple de champ de classe de la classe étudiant on peut citer la moyenne générale de la salle de classe, l’effectif. Le mot instance signifie objet ainsi les expressions suivantes sont équivalentes : champ d’instance, champ d’objet, données d’instance données d’objets, info d’instance, info d’objet La description structurelle d’une classe consiste à décrire ces différents champs cette description structurelle est dite statique. La description comportementale de l’objet consiste a décrire comment il réagit aux différents messages reçu elle est encore appelé description dynamique. Un comportement, encore appelé méthode, décris un message qu’on peut envoyer a un objet et décris le comportement de l’objet lors de la réception du message La description n dynamique consiste a décrire les différentes méthodes Dans certains LOO Seul les objets peuvent recevoir le message cependant dans le plupart des l.o.o les objets et les classes peuvent recevoir des messages de ce fait on distingue deux catégories de méthodes comme pour les champs (méthode d’objet et méthode classe) 1iere catégories de méthodes : méthode d’objet ou méthode d’instance Une méthode d’instance décris un message et un comportement associe a un objet ceci signifie que les méthodes de constances ne s’appliquent qu’aux objets. Exemple de méthode d’instant de la classe étudiant (get nom (), get prénom (), get âge (), get moyenne()) les méthodes d’instances manipulent (écrire et lire ) n les variable d’instances (données d’instances ) 2ieme catégories de méthodes : méthode de classes Une méthode de classe représente un message et un comportement qui s’adresse a une classe Exemple : get nombre étudiant (), get moyenne générale () Une méthode de classe opère sur les variables de classes. La notion de constructeur est partage par les langages orientes objets. un constructeur est une méthode permettant de fabriquer un objet une class peut posséder plusieurs constructeurs. En java, le nom d’un constructeur est celui de sa classe .comme tout les constructeurs d’une classe ont le même nom, cela peut prêter la confusion en revanche le nombre d’argument et la nature des arguments permettent d’élever l’ambigüité. Exemple le consulteur de la classe d’étudiant : public étudiant (string nom) Public étudiant (string nom, string prénom) Public étudiant(string nom, string prénom, string âge) Public étudiant () En java Lorsque le programmeur décrit une classe sans définir un constructeur, le compilateur java lui affecte automatiquement un consulteur par défaut le consulteur par défaut n’a pas d’argument (il a zéro argument) pour crée un argument on doit utiliser un consulteur III) LA NOTION DE VISIBILITE La notion de visibilité permet de discipliner l’accès aux classes, champs et méthodes. On distingues puiseurs attributs de visibilités en java public, private , protected, package. Le concept de visibilité existe dans tout les langages oriente objet .le principe inerant a la notion de visibilité est la suivante 1.1) Si on voit un champ alors on peut lire sa valeur ou modifier sa valeur 1.2) Si on voit une méthode alors on peut l’utiliser en l’appliquant à un objet si c’est une méthode d’objet et a une classe si c’est une méthode classe 1.3) Si on voit une classe alors on peut l’utiliser SIGNIFICATION DE L’ATTRIBUT DE VISIBILITER PUBLIC Quand on applique cette attribut de visibilité a un classe a un champ ou a une méthode, le dit champ ,le dit méthode est visible partout 1.1) Si un champ est public, tout le monde peut y accéder pour lire pour écrire 1.2) Si une méthode est public tout le monde peut l’utiliser et l’appliquer a un objet si c’est une méthode d’instance et a une classe si c’est une méthode de classe 1.3) Quand l’attribut de visibilité public est affecte a une classe cette classe est visible par tout le monde SIGNIFICATION DE L’ATTRIBUT DE VISIBITRITER PRIVATE Lorsque cette visibilité est affecte a un champ, une classe ou une méthode, le dit champ, la dite méthode et la dite classe sont visibles uniquement a l’intérieure de leurs classes c'est- à-dire de la classe contenant leurs définitions 1.1) Si private est affecte a un champ seul les méthodes de cette classe voient ce champ en d’autres thermes, seule les méthodes de cette classe ont le droit de lire ou de modifier ce champ. les autres classes ne voient pas ce champ, les méthodes des autres classes ne voient pas ce champ Exemple 1.2) Lorsque l’attribut private est affecte a une méthode, cette méthode est visible uniquement a l’intérieure de sa classe donc seule les méthodes de sa classe peuvent l’utiliser sur notre exemple il y’a que la méthode get libelle qui peut use la méthode get numéro 1.3) Lorsque la visibilité private est affecte a une classe, cette classe est visible uniquement a l’inferieure de la classe qui la contient. Ainsi seule la classe qui la contient peut l’utiliser SIGNIFICATION DE LA VISIBILITE PACKAGE Package signifie groupe, dossier. Un package est un dossier contenant un ensemble définition de classes quand t’on affecte la visibilité package a une classe, a un champ ou a une méthode alors la dite classe, la dite méthode ou le dit champ sont visible a l’intérieure du paquetage qui contient la définition de sa classe SIGNIFICATION DE LA VISIBILITE PROTECTED Etudiant -public string nom -public string prenom -public string get nom() -public string get prenom() Produit -public int numero -public string libelle -public string get libelle() -public string get numero () Le champ prénom es visible uniquement par la méthode get nom () et get prénom () .get libelle et get numéro ne voit pas le champ prénom puisqu’ils sont a l’extérieure de la classe Quand t’on affecte l’attribut des visibilités protected a une méthode alors le dit champ, la dite méthode ou la dite classe sont visible dans leurs classes et dans les classes descendantes IV) LE CONCEPT D’HERITAGE Le concept d’héritage permet d’exprimer les liens de parentes entre objet ce concept exprime l notion de classes mère et la notion de classe fille. En c++ et en java, une classe mère peut avoir plusieurs classes filles. En revanche, en c++, une classe fille peut avoir plusieurs mères (héritage multiple) et en java, une classe fille a une et une classe mère EXEMPLE D’HERITAGE : Heritage particulier Heritage multible client Client regulier Eleve employe employe eleve Compte epargne Compte cheque compte une classe fille hérite des champs et méthode de la classe mère le programmeur n’a pas besoin de les redéfinir dans la classe fille. Dans le cas de comptes d’épargne, cette classe hérite des champs numéros, solde, nom de propriétaires et les méthodes de la classe mère. Le programmeur lors de la définition de comte d’épargne doit spécifie les méthodes et champs qui n’apparaissent pas dans la classe mère. L’héritage pose des Pb de conflit. 1) Une méthode de la classe fille et une méthode de la classe mère ont exactement le même nom et la même entête le problème qui se pose est celui de savoir comment lever l’ambigüité puis que ce cas la classe fille a deux méthodes uploads/Philosophie/ introduction-a-l-x27-oriente-objet-en-java.pdf

  • 26
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager