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>
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>
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.