Cours programmer en Java la programmation structurée, tutoriel & guide de travaux pratiques Java en pdf.
Les concepts d’objet et d’encapsulation
En programmation structurée, un programme est formé de la réunion de différentes procédures et de différentes structures de données généralement indépendantes de ces procédures. En P.O.O., un programme met en œuvre différents objets. Chaque objet associe des données et des méthodes agissant exclusivement sur les données de l’objet. Notez que le vocabulaire évolue quelque peu : on parlera de méthodes plutôt que de procédures ; en revanche, on pourra utiliser indifféremment le mot données ou le mot champ. Mais cette association est plus qu’une simple juxtaposition. En effet, dans ce que l’on pourrait qualifier de P.O.O. « pure », on réalise ce que l’on nomme une encapsulation des données. Cela signifie qu’il n’est pas possible d’agir directement sur les données d’un objet ; il est nécessaire de passer par ses méthodes, qui jouent ainsi le rôle d’interface obligatoire. On traduit parfois cela en disant que l’appel d’une méthode est en fait l’envoi d’un message à l’objet.
Le grand mérite de l’encapsulation est que, vu de l’extérieur, un objet se caractérise uniquement par les spécifications de ses méthodes, la manière dont sont réellement implantées les données étant sans importance. On décrit souvent une telle situation en disant qu’elle réalise une abstraction des données (ce qui exprime bien que les détails concrets d’implémentation sont cachés). À ce propos, on peut remarquer qu’en programmation structurée, une procédure pouvait également être caractérisée (de l’extérieur) par ses spécifications, mais que, faute d’encapsulation, l’abstraction des données n’était pas réalisée.
L’encapsulation des données présente un intérêt manifeste en matière de qualité de logiciel. Elle facilite considérablement la maintenance : une modification éventuelle de la structure des données d’un objet n’a d’incidence que sur l’objet lui-même ; les utilisateurs de l’objet ne seront pas concernés par la teneur de cette modification (ce qui n’était bien sûr pas le cas avec la programmation structurée). De la même manière, l’encapsulation des données facilite grandement la réutilisation d’un objet.
Le concept de classe
Le concept de classe correspond simplement à la généralisation de la notion de type que l’on rencontre dans les langages classiques. En effet, une classe n’est rien d’autre que la description d’un ensemble d’objets ayant une structure de données commune et disposant des mêmes méthodes. Les objets apparaissent alors comme des variables d’un tel type classe (en P.O.O., on dit aussi qu’un objet est une instance de sa classe). Bien entendu, seule la structure est commune, les valeurs des champs étant propres à chaque objet. En revanche, les méthodes sont effectivement communes à l’ensemble des objets d’une même classe.
Lorsque, comme cela arrive parfois dans l’écriture d’interfaces graphiques, on est amené à ne créer qu’un seul objet d’une classe donnée, la distinction entre les notions d’objet et de classe n’est pas toujours très évidente.
En revanche, lorsque l’on dispose de plusieurs objets d’une même classe, le principe d’encapsulation s’appliquera à la classe et non à chacune de ses instances, comme nous le verrons.