FANDOM


Cet article n'est pas encore fini. Certaines informations peuvent être erronées ou incomplètes.



La classe Object (Objet en français) est la base de la hiérarchie des classe en Java. Toutes les classes l'étendent. Tous les objets, incluant les tableaux, implémentent ces méthodes. 

Constructeurs Modifier

Constructeur Description
Object() N/A

Méthodes Modifier

Modifieur Type Méthode Description
protected Object clone() Crée et retourne une copie de cet objet.
boolean equals(Object obj) Indique si l'objet passé en argument est égal cet objet.
protected void finalize() Déconseillé
Appelé par le collecteur de déchets sur un objet lorsqu'il détermine qu'il n'y a plus de références à cet objet.
Class<?> getClass() Retourne la classe d'exécution de cet objet.
int hashCode() Retourne une valeur de code haché pour cet objet.
void notify() Réveille un thread qui est bloqué sur l'objet.
void notifyAll() Réveille tous les thread qui sont bloqués sur l'objet.
String toString() Retourne la chaîne de caractère qui représente l'objet.
void wait() Suspend le thread actuel jusrqu'à ce qu'un autre thread appelle la méthode notify() ou la méthode notifyAll() pour cet objet.
void wait(long timeout) Suspend le thread actuel jusrqu'à ce qu'un autre thread appelle la méthode notify() ou la méthode notifyAll() pour cet objet ou pendant un certain temps.
void wait(long timeout, int nanos) Suspend le thread actuel jusrqu'à ce qu'un autre thread appelle la méthode notify() ou la méthode notifyAll() pour cet objet, qu'un autre thread interrompt le thread actuel, ou pendant un certain temps.

Détails des méthodes Modifier

clone: Modifier

protected Object clone()

Crée et retourne une copie de cet objet. La définition précise de "copie" peut dépendre de la classe de l'objet. L'intention générale est que, pour n'importe quel objet x, l'expression:

x.clone() != x


sera vrai et que l'expression:

x.clone().getClass() == x.getClass()


le sera aussi, mais pas obligatoirement. Typiquement, l'expression

x.clone().equals(x)


est vrai, mais ce n'est pas toujours le cas.

Par convention, l'objet retourné devrait être obtenu en appelant super.clone. Si une classe et toutes ses classes héritées (sauf Object) suivent cette convention,

x.clone().getClass() == x.getClass()


sera vrai.

Par convention, l'objet retourné par cette méthode devrait être indépendant de cet objet (celui qui à été cloné). Pour parvenir à cette indépendance, il peut être nécessaire de modifier un ou plusieurs champs de l'objet retourné par super.clone avant de le retourner. Typiquement, ça signifie de copier n'importe quels objets mutable qui compromet la «structure profonde» aux objets clonés et remplacer les références à ces objets avec des références aux copies. Si une classe contient seulement des champs primitifs ou des références à des objets immutable, c'est généralement qu'aucun champs dans l'objet retourné par super.clone n'a à être modifié.

La méthode clone effectue un opération de clonage spécifique. Premièrement, si la classe de cet objet n'implémente pas l'interface Cloneable, une CloneNotSupportedException sera lancée. Notez que tous les tableau sont considérés comme implémentant cette interface et cloner un tableau de type T[] retourne un objet de type T[] où T est une n'importe quelle référence ou type primitif. Sinon, cette méthode crée une nouvelle instance de la classe de cet objet et initialise tous ces champs avec ceux correspondant dans l'objet. Le contenu des variables n'est pas cloné lui-même. Par conséquent, cette méthode effectue une «copie superficielle» de cet objet et non une "copie profonde".

La classe Objet n'implémente pas elle-même l'interface Cloneable, donc appeler la méthode de clone sur un objet qui est un instance de la classe Object lancera une exception lors de l'exécution.

Paramètres Modifier

Aucun paramètre

Valeur de retour: Modifier

Un clone de l'objet cloné.

Déclare: Modifier

CloneNotSupportedException - Si la classe de l'objet ne supporte pas l'interface Cloneable. Les sous-classe qui redéfinissent la méthode clone peuvent aussi lancer cette exception pour indiquer qu'une instance ne peut pas être clonée.


equals: Modifier

public boolean equals(Object obj)

Indique si un autre objet est «égal à» cet objet. La méthode equals implémente des relations d'équivalence sur des références d'objet non-nul:

  • Elle est réfléchie: pour toutes valeurs de référence non-nulle x, x.equals(x) doit retourner vrai.
  • Elle est symétrique: pour toutes valeurs de référence non-nulle x et y, x.equals(y) doit retourner vrai si et seulement si y.equals(x) retourne vrai.
  • Elle est transitive: pour toutes valeurs de référence non-nulle x, y et z, si x.equals(y) retourne vrai et y.equals(z) aussi, x.equals(z)</code) doit retourner vrai.
  • Elle est consistante : pour toutes valeurs de référence non-nulle x et y, plusieurs appels à <code>x.equals(y) retournera toujours vrai ou toujours faux, à condition qu'aucun des deux objets ne soient modifiés entre les appels.
  • Pour toutes valeurs de référence non-nulle x, x.equals(null) doit retourner faux.

La méthode equals de la classe Object implémente la relation d'équivalence la plus discriminante possible sur les objets, c'est à dire que pour toutes valeurs de référence non-nulle x et y, cette méthode retournera vrai si et seulement si x et y réfèrent au même objet (x == y est vrai).

Notez qu'il est généralement nécessaire de redéfinir la méthode hashCode lorsque cette méthode est redéfinie, pour maintenir un accord général avec la méthode hashCode, qui stipule que deux objets égaux doivent avoir des codes de hachage égaux.

Paramètres Modifier

obj: La référence à l'objet avec lequel on compare l'objet actuel.

Valeur de retour: Modifier

Vrai si cet objet est le même que l'objet en argument, sinon, faux.

Déclare: Modifier

Aucune exception


getClass: Modifier

public final Class<?> getClass()

Retourne la classe d'exécution de cet objet. L'objet retourné est l'objet qui est verrouillé par les méthodes statiques synchronisés qui représentent la classe.

La valeur de retour est actuellement Class<? extends |x|> où |x| est le remplacement (Traduction à revoir) du type statique de l'expression sur laquelle getClass est appelé. Par exemple, il n'est pas nécessaire de redéfinir le type dans ce bout de code:


Number n = 0; Class<? extends Number> c = n.getClass();

Paramètres Modifier

Aucun paramètre

Valeur de retour: Modifier

La classe de l'objet qui représente la classe d'exécution de l'objet.

Déclare: Modifier

Aucune exception


toString: Modifier

public String toString()

Retourne la chaîne de caractères (String) qui représente l'objet. En général, la méthode toString retourne une chaîne de caractères qui représente «textuellement» cet objet. Le résultat devrait être une représentation concise mais informative qui permet à une personne de le lire facilement. Il est recommandé que toutes les sous-classes redéfinissent cette méthode.

La méthode toString de la classe Object renvoie une chaîne de caractères constituée du nom de la classe dont l'objet est une instance, le arobase «@» et la représentation non-signée hexadécimale du code haché de l'objet. En d'autres mots, cette méthode retourne un chaîne de caractères qui correspond à la valeur de:


getClass().getName() + '@' + Integer.toHexString(hashCode())

Paramètres Modifier

Aucun paramètre

Valeur de retour: Modifier

Une chaîne de caractères qui représente l'objet.

Déclare: Modifier

Aucune exception


hashCode: Modifier

public int hashCode​() Retourne un code haché pour cet objet. Cette méthode est supportée pour bénéficier des tables hachées comme les HashMaps. La méthode hashCode fonctionne comme ceci:

  • Si la méthode est utilisée plusieurs fois sur un objet pendant la même exécution d'une application, elle doit toujours retourner le même Integer, à condition qu'aucune information utilisée dans des conditions d'égalité sur l'objet ne soit modifiée. Ce nombre ne sera pas toujours le même d'une exécution à l'autre.
  • Si deux objets sont égaux selon la méthode equals(Object), appeler la méthode sur chacun des deux objets doit produire la même résultat. Appeler cette méthode sur deux objets non égaux selon equals(Object) ne retournera pas nécessairement deux nombres différents. Toutefois, le programmeur devrait être conscient que produire un nombre différent pour les objets non-égaux peut améliorer les performances des tables hachées.

Tant que c'est possible, la méthode hashCode définie par la classe Object doit retourner des nombres distincts pour chaque objet distinct. (La méthode peut ou peut ne pas être implémentée comme certaines fonctions d'une adresse mémoire d'un objet à un certain point dans le temps.)

Paramètres Modifier

Aucun paramètre

Valeur de retour: Modifier

Un code de hachage représentant cet objet.

Déclare: Modifier

Aucune exception


{{méthode |nom=notify |description=public final void notify() Réveille une seule tâche (thread) qui attend le moniteur de l'objet. Si aucune des tâches attendent le moniteur, une d'elles est choisie pour être réveillée. Le choix est arbitraire et se passe à la discrétion de l'implémentation. La tâche attend le moniteur d'un objet en appelant une des méthodes wait. La tâche réveillée ne pourra pas procéder avant que la tâche actuelle relâche son verrou sur cet objet. Elle rivalisera de manière usuelle avec n'importe quelle autre tâche qui peut rivaliser activement pour se synchroniser sur cet objet. Par exemple, la tâche réveillée bénéficiera d'aucun privilège fiable ou d'aucun désavantage pour être la prochaine tâche à verrouiller cet objet.

Cette méthode devrait seulement être appelée sur une tâche qui est propriétaire du moniteur de cet objet. Une tâche devient propriétaire du moniteur d'un objet d'une de ces trois façons:

  • En exécutant une méthode d'instance synchronisée de cet objet.
  • En exécutant le corps d'une déclaration synchronisée qui se synchronise sur l'objet.

This method should only be called by a thread that is the owner of this object's monitor. A thread becomes the owner of the object's monitor in one of three ways:

By executing a synchronized instance method of that object. By executing the body of a synchronized statement that synchronizes on the object. For objects of type Class, by executing a synchronized static method of that class. Only one thread at a time can own an object's monitor.

Throws: IllegalMonitorStateException - if the current thread is not the owner of this object's monitor.