
« Salut Amigo ! »
"Salut!"
"Aujourd'hui, nous allons étudier la classe Object.
Vous l'avez déjà rencontrée, et vous savez que Object est la classe de base de toutes les classes. Elle n'a pratiquement pas de données, mais elle a plusieurs méthodes."
« Pourquoi a-t-il besoin de méthodes ? Quelqu'un crée-t-il vraiment des instances de la classe Object ? »
"Regardez les choses de cette façon : les méthodes de la classe Object sont communes à toutes les classes. En d'autres termes, les créateurs de Java ont identifié plusieurs méthodes que, à leur avis, chaque classe devrait avoir et les ont ajoutées à la classe Object."
"Et lorsqu'il est combiné avec le polymorphisme (la possibilité de remplacer les méthodes de la classe Object dans les classes dérivées), cela devient un outil très puissant."
"Voyons quelles sont ces méthodes :"
Méthode | Description |
---|---|
|
Renvoie une représentation sous forme de chaîne de l'objet. |
|
Une paire de méthodes utilisées pour comparer des objets. |
|
Retourne un objet spécial qui décrit la classe actuelle. |
|
Méthodes pour contrôler l'accès à un objet à partir de différents threads. Pour la synchronisation des threads. |
|
Cette méthode permet de libérer des ressources natives non Java : fermer des fichiers, des flux, etc. |
|
Cette méthode permet de cloner un objet : crée une copie de l'objet. |
"Ces méthodes peuvent être divisées en 6 groupes. Vous connaissez déjà certaines d'entre elles, et nous nous familiariserons avec le reste dans les leçons suivantes."
"Pour une raison quelconque, je ne vois rien d'utile ici."
"Amigo ! Si ces méthodes n'étaient pas importantes, ils ne les auraient pas ajoutées à chaque objet ! Je vous conseillerais donc de regarder de plus près ce qu'elles sont et pourquoi elles sont nécessaires. Si elles vous semblent sans importance , soit vous n'avez pas compris quelque chose, soit vous n'avez pas bien compris quelque chose."
"OK. Je vais écouter attentivement."
"Commençons par la méthode toString().
"Cette méthode permet d'obtenir une description textuelle de n'importe quel objet. Son implémentation dans la classe Object est très simple :"
return getClass().getName() + "@" + Integer.toHexString(hashCode());
"getClass() et hashCode() sont également des méthodes de la classe Object.
L'appel de cette méthode produit généralement un résultat comme celui-ci :"
java.lang.Object@12F456
« Et à quoi sert une telle description ?
"Cette description vous permet de connaître la classe de l'objet sur lequel la méthode a été appelée. Vous pouvez également faire la distinction entre les objets ; différents objets auront des chiffres différents après le symbole @."
"Mais la valeur réelle de cette méthode réside ailleurs. Cette méthode peut être écrasée dans n'importe quelle classe pour renvoyer une description d'objet plus détaillée ou appropriée."
"Mais il y a plus. Comme vous pouvez obtenir une représentation textuelle de chaque objet, Java vous a permis d'implémenter la prise en charge de l'"ajout" de chaînes aux objets.
Découvrez-le :"
Code | Que se passe-t-il vraiment |
---|---|
|
|
|
|
|
|
"Ouais, je l'utilise régulièrement. Surtout quand j'écris un programme ou que je recherche des bogues. C'est une opération utile."
GO TO FULL VERSION