Création d'objets - 1

« Coucou, revoilà ta prof préférée. Tu progresses si vite que j'ai décidé de te parler des objets et de la façon de travailler avec. »

« Pour créer un objet, tu dois saisir le mot-clé 'new', suivi du nom du type (le nom de la classe). Par exemple, supposons que nous avons une classe nommée 'Chat' : »

Code Description
Cat cat;
Déclare une variable de référence Chat nommée chat. La valeur de la variable chat est null.
new Cat();
Crée un objet Chat.
Cat cat = new Cat();
Crée une variable de référence de Chat nommée chat.
Crée un nouvel objet Chat. Affecte une référence à l'objet nouvellement créé à la variable chat.
Cat kitty = new Cat();
Cat smokey = new Cat();
Deux objets sont créés. Leurs références sont affectées à deux variables différentes.
Cat kitty = new Cat();
Cat smokey = new Cat();

smokey = kitty;
Deux objets sont créés. Leurs références sont affectées à deux variables différentes.

Nous définissons ensuite la variable felix sur une référence à l'objet référencé par la variable minou. Les deux variables font maintenant référence au premier objet créé.
(Comme le second objet n'est plus référencé nulle part, il sera récupéré par le ramasse-miettes plus tard)

Cat kitty = new Cat();
Cat smokey = null;

smokey = kitty;

kitty = null;
Un objet Chat est créé, et nous affectons une référence vers lui à la première variable (minou). La deuxième variable (felix) stocke une référence vide (null).

Les deux variables font référence au même objet.

Maintenant, seul felix fait référence à un objet, et pas minou.

« Que se passerait-il si nous avions créé un objet et que nous n'avions pas enregistré sa référence dans une variable ? »

« Si nous créons un objet sans l'affecter à une variable, la machine Java le crée puis le déclare inutile. Après un certain temps, l'objet est supprimé par le ramasse-miettes. »

« Comment je fais pour jeter un objet dont je n'ai plus besoin ? »

« Tu n'as pas besoin de le faire. Dès qu'aucune variable ne référence un objet, il est marqué pour destruction par la machine Java la prochaine fois qu'elle passe le ramasse-miettes. »

Tant qu'il y a au moins une référence à un objet, il est considéré comme actif et n'est pas détruit. Si tu veux te débarrasser d'un objet avant, tu peux éliminer toutes ses références en affectant null à toutes les variables qui y font référence.

« Je vois. Par rapport aux deux ou trois dernières leçons, ça m'a l'air plutôt simple. »

« Diego a passé toute la nuit à te trouver des missions. Il a fait cet effort tout spécialement pour toi. Il a un gros sens de l'humour, tu sais ? »