Toutes les méthodes des classes Object, plus plus sur la méthode toString() - 1

« 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
public String toString()
Renvoie une représentation sous forme de chaîne de l'objet.
public native int hashCode()
public boolean equals(Object obj)
Une paire de méthodes utilisées pour comparer des objets.
public final native Class getClass()
Retourne un objet spécial qui décrit la classe actuelle.
public final native void notify()
public final native void notifyAll()
public final native void wait(long timeout)
public final void wait(long timeout, intnanos)
public final void wait()
Méthodes pour contrôler l'accès à un objet à partir de différents threads. Pour la synchronisation des threads.
protected void finalize()
Cette méthode permet de libérer des ressources natives non Java : fermer des fichiers, des flux, etc.
protected native Object clone()
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
int age = 18;
System.out.println("Age is " + age);

String s = String.valueOf(18);
String result = "Age is " + s;
System.out.println(result);
Student st = new Student("Vincent");
System.out.println("Student is " + st);

Student st = new Student("Vincent");
String result = "Student is " + st.toString();
System.out.println(result);
Car car = new Porsche();
System.out.println("My car is " + car);

Car car = new Porsche();
String result = "My car is " + car.toString();
System.out.println(result);

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