In Java, the Object
class is the parent class of all other classes. It is the top of the class hierarchy and provides methods that are common to all objects. Understanding the Object
class and its methods is crucial for Java developers. In this blog post, we will explore some of the important methods provided by the Object
class.
toString()
The toString()
method is used to get a string representation of an object. It returns a string that describes the object’s state. By default, the toString()
method returns a combination of the class name, an at-sign (@), and the memory address of the object in hexadecimal form. It is a good practice to override this method in your class to provide a meaningful representation of the object.
Example:
public class Person {
private String name;
private int age;
// constructor and other methods
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
}
}
In the above example, we have overridden the toString()
method in the Person
class to return a string representation of the Person
object. This allows us to print the object and get meaningful output.
equals()
The equals()
method is used to check the equality of two objects. By default, the equals()
method checks for reference equality, i.e., whether the two objects refer to the same memory location. However, it is often necessary to override this method in your own classes to define equality based on the object’s properties.
Example:
public class Person {
private String name;
private int age;
// constructor and other methods
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null || getClass() != obj.getClass())
return false;
Person person = (Person) obj; // type casting
return age == person.age && Objects.equals(name, person.name);
}
}
In the above example, we have overridden the equals()
method in the Person
class to compare two Person
objects based on their name
and age
attributes. We use the Objects.equals()
method to compare the name
strings to handle null
values correctly.
hashCode()
The hashCode()
method returns a hash code value for the object. It is used in conjunction with data structures like hash maps and hash sets to efficiently store and retrieve objects. The default implementation of the hashCode()
method is based on the memory address of the object, but it is common to override this method to provide a more meaningful hash code based on the object’s properties.
Example:
public class Person {
private String name;
private int age;
// constructor and other methods
@Override
public int hashCode() {
return Objects.hash(name, age);
}
}
In the above example, we have overridden the hashCode()
method in the Person
class using the Objects.hash()
method, which calculates the hash code based on the name
and age
attributes. This ensures consistent hash codes for objects with the same properties.
#java #objectclass