Classes et objets
CHAPITRE 9
196
Dans ces conditions, la notation p désigne directement l’objet lui-même, ce qu’on peut
schématiser ainsi :
À ce niveau, la différence entre les deux modes de gestion des objets peut vous paraître assez
minime, la première semblant introduire simplement une variable intermédiaire supplémentaire. En fait, jusqu’ici, nous nous sommes contentés d’utilisations simples. Mais, dans les
chapitres suivants, tout en continuant à privilégier la gestion par référence, nous aurons
l’occasion de comparer ces deux modes de gestion dans des situations plus complexes.
Pour l’instant, retenez simplement que, dans le premier mode de gestion, on manipule des
références à des objets, alors que dans le second, on manipule directement ces objets, c’est-àdire leur valeur, autrement dit les valeurs de leurs attributs.
p
3
5
Côté langages
Définition d’une classe
Comme vous le verrez dans les exemples de programmes ci-après, la syntaxe de définition d’une classe
en C++, C#, Java ou PHP a est très proche de celle que nous avons introduite. Dans les quatre langages :
• Les attributs et les méthodes peuvent être soit privés (private), soit publics (public). Il est donc possible de « violer » le principe d’encapsulation. Certains langages proposent un statut par défaut (private pour C++, public pour PHP).
• On dispose de constructeurs. En C++, C# ou Java, ils portent le même nom que la classe et ils peuvent
être surdéfinis. En PHP, le constructeur se nomme __construct ; il ne peut pas être surdéfini, mais il
est possible de prévoir des « valeurs par défaut » des paramètres.
Quelques petites différences apparaîtront :
• en C++, on distinguera souvent la déclaration de la classe de la définition de ses méthodes (voyez l’exemple C++ ci-après) ;
• en C++, on utilisera « l’attribut » private ou public, non pas pour une seule déclaration, mais pour un
ensemble de déclarations ;
a.C ne dispose pas de la notion de classe.
Précédent

- 219/370

Suivant