Programmation Objet |
"Les êtres humains ne vivent pas
uniquement dans le monde objectif ; ils ne peuvent être
isolés du monde d'activité sociale tel que nous le
comprenons ; ils sont à la merci du langage particulier qui
est devenu le moyen d'expression de leur société. Il
est illusoire d'imaginer que l'on puisse s'adapter à la
réalité sans l'usage d'un langage et que la langue
est simplement un moyen secondaire pour résoudre les
problèmes de communication ou de réflexion. En fait
, le "monde réel" est, en grande partie,
inconsciemment construit sur les habitudes linguistiques du
groupe&. Nous voyons, nous entendons et vivons les expériences
qui sont les nôtres parce que les habitudes linguistiques de
notre communauté nous prédisposent à des
choix d'interprétation." |
But d'un programme |
Un programmeur écrit un programme pour
exprimer la solution d'un problème. Ce problème peut
avoir pour origine un calcul à effectuer, mais il peut
aussi s'agir d'un traitement numérique sur une image ou
bien d'un programme bancaire de gestion de transactions. Ce qu'il
faut comprendre c'est qu'un programme ne va pas nous chercher la
solution de ce problème, il est la solution. Cette dernière
nous est transmise dans la plupart des cas de manière
graphique (dans une fenêtre dos, dans une fenêtre
Windows avec des graphiques, etc.). |
Le tout objet |
En objet il faut répondre à un
problème avec les éléments de ce problème.
Si l'on a un programme de gestion de personnes, nous devrons alors
avoir des objets représentant ces personnes. Ces objets
contiendront une case nom, une case prénom, une case date
de naissance, etc. Tout ce qui définit une personne. Dans
l'univers du problème nous devons conceptualiser un monde
ou tout élément est un objet. |
|
Cette dérivation de classes vers des "sous-classes" ou "classes filles" peut se faire sans limites. Il est ainsi possible de créer les classes Caniche, Bas-Rouge et Labrador à partir de la classe Chien. Si cette façon de voir l'univers n'est somme toute pas très pertinente dans la vie réelle, l'important comme nous l'avons dit, c'est que ce soit le juste reflet de notre problème informatique. |
|
Notre modèle objet (ou arbre) est pourtant incomplet ; quelle que soit la ou les classes que nous y créons, il y aura toujours une classe mère dont toutes nos classes hériteront (à un degré différent) que l'on nomme classe Objet |
|
Une
classe fille est une classe qui a repris certaines particularités
de la classe dont elle est dérivée (qu'on nommera
pour l'occasion classe mère) . Ce lien qui lie la fille à
sa mère se nomme héritage. On a aussi pour habitude
de dire qu'une classe fille étend sa classe mère. |
|
Les instances de classe |
Une classe (avec un peu d'imagination) peut être vue comme un moule. A partir de la classe Caniche ils nous est possible de créer autant d'objets Caniches que nous le désirons et de les insérer dans l'univers de notre problème. Ceci s'applique pour toutes les classes que nous venons de créer. |
|
Dans le modèle ci-dessus, Pepette est une instance de la classe Caniche. Le lien entre Chien et Animal , n'est évidemment pas le même que le lien entre Pepette et Chien. Toute classe peut ainsi avoir un ou plusieurs "représentants" qui possèdent toutes les caractéristiques de la classe dont ils sont issus. |
Les membres d'instances |
Nous pouvons certes créer un grand nombre
d'objets mais ceux-ci n'ont pas grand intérêt. Mis à
part leur type (soit caniche soit labrador, soit pommier etc.),
nous ne savons pas grand chose sur eux et ils ne peuvent rien
faire. Nous allons donc rajouter des caractéristiques à
notre classe. Ces caractéristiques se nomment les membres
de classes. |
|
nombreDePattes, couleurPelage, taille, age ou nom
sont les membres des classes Labrador, Caniche et Bas-rouge. Ces
membres sont des variables qui nous permettent d'associer des
valeurs à chacun de nos objets. Si nous voulons en plus
faire en sorte que nos objets puissent faire des actions nous
allons adjoindre aux classes des méthodes. Les méthodes
ont pour but de renvoyer des valeurs ou bien de modifier
l'environnement. Nous pourrions ainsi adjoindre à chaque
classe héritant de la classe Chien une méthode
Manger(). |
|
|
L'héritage |
Notre modèle est ici mal conçu. Un
trop grand nombre de redondances y sont perceptibles. En effet, si
l'on reste dans la partie Animal de notre modèle, la classe
Labrador, Caniche et Bas-Rouge dispose d'un grand nombre de
membres en commun qu'ils soient variables ou méthodes. Ces
membres sont aussi identiques à ceux des classes Lapin et
Chat |
|
la classe Chat toujours dans ce souci de
différenciation aura les méthodes DetecterChien() et
SEnfuir(). |
Contrairement aux membres d'instances d'une
classe qui donnent des caractéristiques à leurs
objets, les membres statiques appartiennent aux classes
elles-mêmes. Etant stocké dans la classe, leur valeur
s'applique à la classe et à l'ensemble de ses
instances. |
|