La Programmation Orientée Objet

Les Classes & leurs instances


Chapitre I classes & instances

Chapitre II Encapsulation

Chapitre III La Composition

Chapitre IV L'héritage

Chapitre V Surcharge

Chapitre VI le Polymorphisme

Introduction:

La programmation orientée Objet a pour but de créer des composants réutilisables. La conception des applications se limitant ensuite à un assemblage de ces composants. Ainsi, l'application calculette se construit en assemblant dans un objet fenêtre deux zones d'édition un bouton + et une zone d'affichage qui accueillera le résultat.

Il s'agit là d'objets de base fournis avec les outils de développement.

Il reste à la charge de l'entreprise à définir des objets plus complexes propres au métier de l'entreprise. On pourra ainsi définir un objet ficheclient qui nous fournira les informations sur un client. Cet objet pourra alors être utilisé depuis n'importe quelle application. Ces objets sont appelés les "objets métier".

Les classes et les instances

Une classe d'objet est une sorte de type. Elle rassemble des objets de même type.

On peut donc trouver une classe Voiture qui contient de nombreux objets: mavoiture, la tienne etc ...

On trouvera aussi une classe pilote qui contiendra les illustres objets "Prost", "Shumager" et bien d'autres... (pas moi).

Sous delphi on trouve entre autre la classe Tedit (zone d'édition)...

edit1, edit2 edit3 sont trois objets de cette classe.

On dit que l'on a instancié 3 fois la classe TEdit. Les 3 variables suivantes edit1,edit2 et edit3 sont trois instances de la classe TEdit.

Une instance est donc un exemplaire d'une classe.

Avant de pouvoir instancier des objets, il est nécessaire de décrire leur classe.

Description de la classe:

Une classe est définie par deux choses: ce qu'est l'objet et ce qu'il fait.

ce qu'est l'objet

Tous les objets de la classe pilote ont un nom un prénom une adresse etc...

Ces caractéristiques sont les propriétés de la classe pilote.

Reprenons la classe TEdit (l'inspecteur d'objet vous montre les propriétés de l'objet)

elle a pour propriétés entre autres:

Toute zone d'édition aura donc un nom , un texte qui apparaitra dans la zone d'édition une police de caractère...

La valeur de la propriété name pour l'objet Edit1 est "Edit1" .

Si l'utilisateur saisit dupond dans la zone de saisie la propriété text de l'instance Edit1 aura pour valeur dupond.

ce qu'il fait

Pour l'instant, rien ne distingue nos objets des types utilisateurs. Nous allons voir qu'en fait un objet est en plus ca^pable de réaliser des actions.

Notre pilote fait des choses:

Il participe à des courses, il change d'écurie, il s'inscrit à une course ...

ces actions que peut effectuer le pilote sont appelées les méthodes de la classe pilote.

Prenons la classe Titems (sorte de tableau de chaîne) utilisé par delphi, bc++builder et Jbuilder

Soit items une instance de cette classe

var items:Titems

Items comme tout objet de la classe Titems est capable d'ajouter un élément:

items.add('ChaîneAInsérer')

Il est capable de nous renvoyer le nombre d'éléments qu'elle contient:

items.count

Il peut effacer aussi un élément

items.delete(IndiceDeL'ElementASupprimer)

delete, count, add sont trois des méthodes de la classe Titems.

 

Exemple: Déclaration, instanciation et utilisation d'une classe TPoint:

Type Tpoint = Objet

abcisse:entier

ordonnée:entier

init(x,y:entier)

déplace(dx,dy:entier)

end;

Procédure Tpoint.init(x,y:entier);

début

abcisse:=x;

ordonnée:=y;

fin

Procédure Tpoint.deplace(dx,dy:entier);

début

abcisse:=abcisse+dx;

ordonnée:=ordonnée+dy;

fin

// début du programme principal

variable point1,point2:Tpoint; //instanciation de deux objets de type Tpoint

début

point1.init(0,0)

point2.init(640,480)

pour i de 1 à 10 faire

point1.deplace(i,i);

point2.deplace(-i,-i)

fpour

fin

Questions :

  1. Quelles seront les coordonnées de point1 et de point2 à la fin du programme ?
  2. Ecrire la méthode Tpoint.affiche

Conclusion :

Nous avons vu ce qu'est une classe d'objet, comment on la définit, nous savons que l'on pourra avoir plusieurs instances d'une classe. Et qu'une classe est définie par ses propriétés et ses méthodes.

 Passer au chapitre II