Classes

Définitions

Classe ⇒ représentation abstraite d’une chose physique, une idée, …

Objet ⇒ Exemplaire d’une classe (instance) ⇒ on peut créer autant d’instances qu’une classe que l’on veut.

Attribut / Méthode ⇒ propriétés / fonctionnalités d’une classe.

Membres ⇒ attribut + méthode d’une classe.

Constructeur ⇒ méthode spécial qui est appelées lors de l’instanciation d’un objet, généralement pour initialiser les attributs.

Destructeur ⇒ méthode spéciale appelé quand un objet devient inutile (=détruit), et qui permet de relâcher les ressources allouées par l’objet (mémoire, accès fichier, …).

<aside> ⚠️

En Java, pas besoin d’écrire de destructeur car le processus de ramasse-miette (garbage collector) s’occupe automatiquement de détruire proprement les objets.

</aside>

Déclaration 4 définitions d’une classe

En Java, la déclaration (=donner le nom de la classe, type des attributs, entête des méthodes) se fait dans le même fichier que la définition (=donner le code des méthodes) En C++, en général, on met la déclaration dans un fichier .h et la définition dans un fichier .cpp

Lors de la déclaration des membres, on doit spécifier leur droit d’accès. Il y a 3 droits principaux :

<aside> ⚠️

en Java, protected n’a pas toujours ce comportement à cause de la notion de package.

</aside>

<aside> ⚠️

en POO, il n’existe pas de notion d’attribut “super privé”, c’est à dire un attribut auquel un seul et unique objet peut accéder.

</aside>

Instanciation

L’instanciation d’une classe se fait soit directement en utilisant l’opérateur new pour appeler un constructeur, soit indirectement en appelant une méthode qui va elle-même utiliser new et renvoyer une instance (méthode factory)

L’instanciation consiste en gros à :

⇒ une variable objet est en fait l’adresse en mémoire d’une zone contenant des dérivées associées à une classe donnée.