Classe d'objet en Java est présent dans java.lang emballer.
la modulation d'amplitude
- Chaque classe est directement ou indirectement dérivée de la classe Object. Si une classe n’étend aucune autre classe, alors il s’agit d’une classe enfant directe de la Classe d'objet Java et s'il étend une autre classe, alors il est indirectement dérivé.
- La classe Object fournit plusieurs méthodes telles que toString() est égal à() code de hachage() et bien d'autres.
- La classe Object agit comme racine de la hiérarchie d'héritage dans tout programme Java.
Ici, nous utilisons le àChaîne() et code de hachage() méthodes de la classe Object pour fournir une représentation sous forme de chaîne personnalisée pour une classe .
Java
// Java Code to demonstrate Object class class Person { String n; //name // Constructor public Person(String n) { this.n = n; } // Override toString() for a // custom string representation @Override public String toString() { return 'Person{name:'' + n + ''}'; } public static void main(String[] args) { Person p = new Person('Geek'); // Custom string representation System.out.println(p.toString()); // Default hash code value System.out.println(p.hashCode()); } }
Sortir
Person{name:'Geek'} 321001045 Explication: Dans l'exemple ci-dessus, nous remplaçons le àChaîne() méthode pour fournir un représentation sous forme de chaîne personnalisée de la classe Person et utiliser le code de hachage() méthode pour afficher la valeur du code de hachage par défaut de l’objet.
Méthodes de classe d'objet
La classe Object fournit plusieurs méthodes qui sont les suivantes :
- Méthode toString()
- Méthode hashCode()
- Méthode égale (objet obj)
- méthode finaliser()
- Méthode getClass()
- méthode clone()
- wait() notify() notifyAll() (méthodes de concurrence)

1. Méthode toString()
Le àChaîne() fournit une représentation sous forme de chaîne d'un objet et est utilisée pour convertir un objet en chaîne. La méthode toString() par défaut pour la classe Object renvoie une chaîne composée du nom de la classe dont l'objet est une instance, du caractère arobase « @ » et de la représentation hexadécimale non signée du code de hachage de l'objet.
Note: Chaque fois que nous essayons d’imprimer une référence d’objet, la méthode toString() est appelée en interne.
Exemple:
Étudiant de classe publique {
chaîne publique toString() {
return 'Objet étudiant';
}
}
Explication: La méthode toString() est remplacée pour renvoyer une représentation sous forme de chaîne personnalisée de l'objet Student.
2. Méthode hashCode()
Pour chaque objet, JVM génère un numéro unique qui est un hashcode. Il renvoie des entiers distincts pour des objets distincts. Une idée fausse courante à propos de cette méthode est que la méthode hashCode() renvoie l'adresse de l'objet qui n'est pas correcte. Il convertit l'adresse interne de l'objet en entier à l'aide d'un algorithme. La méthode hashCode() est indigène car en Java, il est impossible de trouver l'adresse d'un objet, il utilise donc des langages natifs comme C/C++ pour trouver l'adresse de l'objet.
Utilisation de la méthode hashCode() :
Il renvoie une valeur de hachage utilisée pour rechercher des objets dans une collection. JVM (Java Virtual Machine) utilise la méthode hashcode tout en enregistrant les objets dans des structures de données liées au hachage comme HashSet HashMap Hashtable, etc. Le principal avantage de l'enregistrement d'objets basés sur le code de hachage est que la recherche devient facile.
Note: Remplacement de code de hachage() La méthode doit être effectuée de telle sorte que pour chaque objet, nous générons un numéro unique. Par exemple pour une classe d'étudiant nous pouvons renvoyer le numéro de rôle. d'un étudiant de la méthode hashCode() car elle est unique.
Exemple:
Étudiant de classe publique {
rouleau entier ;
@Outrepasser
public int hashCode() {
rouleau de retour ;
}
}
Explication: Le code de hachage() La méthode est remplacée pour renvoyer une valeur de hachage personnalisée basée sur le résultat de l'objet Student.
3.Équals(Object obj)Méthodes
Le est égal() La méthode compare l'objet donné avec l'objet actuel. Il est recommandé de remplacer cette méthode pour définir des conditions d'égalité personnalisées.
Note: Il est généralement nécessaire de remplacer le code de hachage() chaque fois que cette méthode est remplacée afin de conserver le contrat général de la méthode hashCode qui stipule que les objets égaux doivent avoir des codes de hachage égaux.
Exemple:
Étudiant de classe publique {
rouleau entier ;
@Outrepasser
public booléen égal(Objet o) {
if (o instanceof Student) {
return this.roll == ((Étudiant) o).roll;
}
renvoie faux ;
}
}
Explication: Le est égal() la méthode est remplacée pour comparer rouler entre deux objets Étudiant.
4. Méthode getClass()
Le getClass() La méthode renvoie l'objet de classe de « cet » objet et est utilisée pour obtenir la classe d'exécution réelle de l'objet. Il peut également être utilisé pour obtenir des métadonnées de cette classe. L'objet Class renvoyé est l'objet verrouillé par les méthodes statiques synchronisées de la classe représentée. Comme il est définitif, nous ne l'annulons pas.
Exemple:
Java// Demonstrate working of getClass() public class Geeks { public static void main(String[] args) { Object o = new String('GeeksForGeeks'); Class c = o.getClass(); System.out.println('Class of Object o is: ' + c.getName()); } }
Sortir
Class of Object o is: java.lang.String
Explication: Le getClass() La méthode est utilisée pour imprimer la classe d'exécution de l'objet 'o'.
Note: Après avoir chargé un fichier .class, JVM créera un objet du type java.lang.Class dans la zone du tas. Nous pouvons utiliser cet objet de classe pour obtenir des informations au niveau de la classe. Il est largement utilisé dans Réflexion
5.Méthode finalize()
Le finaliser() La méthode est appelée juste avant qu'un objet ne soit récupéré. On l'appelle le Éboueur sur un objet lorsque le garbage collector détermine qu'il n'y a plus de références à l'objet. Nous devons remplacer la méthode finalize() pour disposer des ressources système, effectuer des activités de nettoyage et minimiser les fuites de mémoire. Par exemple, avant de détruire le conteneur Web des objets Servlet, appelez toujours la méthode finalize pour effectuer des activités de nettoyage de la session.
Note: La méthode finalize s'appelle simplement une fois sur un objet même si cet objet est éligible pour le garbage collection plusieurs fois.
Exemple:
Java// Demonstrate working of finalize() public class Geeks { public static void main(String[] args) { Geeks t = new Geeks(); System.out.println(t.hashCode()); t = null; // calling garbage collector System.gc(); System.out.println('end'); } @Override protected void finalize() { System.out.println('finalize method called'); } }
Sortir
1510467688 end finalize method called
Explication: Le finaliser() La méthode est appelée juste avant que l'objet ne soit récupéré.
6. méthode clone()
Le cloner() La méthode crée et renvoie un nouvel objet qui est une copie de l'objet actuel.
Exemple:
classe publique Book implémente Cloneable {
chaîne privée t ; //titre
livre public (Chaîne t) {
ceci.t = t;
}
@Outrepasser
public Object clone() lance CloneNotSupportedException {
renvoie super.clone();
}
}
Explication: Le cloner() La méthode est remplacée pour renvoyer une copie clonée du Objet livre .
7. Méthodes de concurrence : wait() notify() et notifyAll()
Ces méthodes sont liées à filCommunication en Java . Ils sont utilisés pour faire attendre les threads ou avertir les autres en programmation simultanée.
Exemple d'utilisation de toutes les méthodes de classe d'objet en Java
Javaimport java.io.*; public class Book implements Cloneable { private String t; // title private String a; // author private int y; // year public Book(String t String a int y) { this.t = t; this.a = a; this.y = y; } // Override the toString method @Override public String toString() { return t + ' by ' + a + ' (' + y + ')'; } // Override the equals method @Override public boolean equals(Object o) { if (o == null || !(o instanceof Book)) { return false; } Book other = (Book)o; return this.t.equals(other.getTitle()) && this.a.equals(other.getAuthor()) && this.y == other.getYear(); } // Override the hashCode method @Override public int hashCode() { int res = 17; res = 31 * res + t.hashCode(); res = 31 * res + a.hashCode(); res = 31 * res + y; return res; } // Override the clone method @Override public Book clone() { try { return (Book)super.clone(); } catch (CloneNotSupportedException e) { throw new AssertionError(); } } // Override the finalize method @Override protected void finalize() throws Throwable { System.out.println('Finalizing ' + this); } public String getTitle() { return t; } public String getAuthor() { return a; } public int getYear() { return y; } public static void main(String[] args) { // Create a Book object and print its details Book b1 = new Book( 'The Hitchhiker's Guide to the Galaxy' 'Douglas Adams' 1979); System.out.println(b1); // Create a clone of the Book object and print its // details Book b2 = b1.clone(); System.out.println(b2); // Check if the two objects are equal System.out.println('b1 equals b2: ' + b1.equals(b2)); // Get the hash code of the two objects System.out.println('b1 hash code: ' + b1.hashCode()); System.out.println('b2 hash code: ' + b2.hashCode()); // Set book1 to null to trigger garbage collection // and finalize method b1 = null; System.gc(); } }
Sortir
The Hitchhiker's Guide to the Galaxy by Douglas Adams (1979) The Hitchhiker's Guide to the Galaxy by Douglas Adams (1979) b1 equals b2: true b1 hash code: 1840214527 b2 hash code: 1840214527
Explication: L'exemple ci-dessus montre l'utilisation de àChaîne() égal() hashCode() et cloner() méthodes dans le Cours de livre .