next → ← prev
The Object class is the parent class of all the classes in java by default. In other words, it is the topmost class of java.
The Object class is beneficial if you want to refer any object whose type you don't know. Notice that parent class reference variable can refer the child class object, know as upcasting.
Let's take an example, there is getObject[] method that returns an object but it can be of any type like Employee,Student etc, we can use Object class reference to refer that object. For example:
The Object class provides some common behaviors to all the objects such as object can be compared, object can be cloned, object can be notified etc.
Methods of Object class
The Object class provides many methods. They are as follows:
public final Class getClass[] | returns the Class class object of this object. The Class class can further be used to get the metadata of this class. |
public int hashCode[] | returns the hashcode number for this object. |
public boolean equals[Object obj] | compares the given object to this object. |
protected Object clone[] throws CloneNotSupportedException | creates and returns the exact copy [clone] of this object. |
public String toString[] | returns the string representation of this object. |
public final void notify[] | wakes up single thread, waiting on this object's monitor. |
public final void notifyAll[] | wakes up all the threads, waiting on this object's monitor. |
public final void wait[long timeout]throws InterruptedException | causes the current thread to wait for the specified milliseconds, until another thread notifies [invokes notify[] or notifyAll[] method]. |
public final void wait[long timeout,int nanos]throws InterruptedException | causes the current thread to wait for the specified milliseconds and nanoseconds, until another thread notifies [invokes notify[] or notifyAll[] method]. |
public final void wait[]throws InterruptedException | causes the current thread to wait, until another thread notifies [invokes notify[] or notifyAll[] method]. |
protected void finalize[]throws Throwable | is invoked by the garbage collector before object is being garbage collected. |
We will have the detailed learning of these methods in next chapters.
Next TopicObject Cloning in java
← prev next →
Feedback
- Send your Feedback to [email protected]
Help Others, Please Share
The Object
Object
class. The Object
class defines the basic state and behavior that all objects must have, such as the ability to compare oneself to another object, to convert to a string, to wait on a condition variable, to notify other objects that a condition variable has changed, and to return the object's class. The equals
Method
Use theequals
to compare two objects for equality. This method returnstrue
if the objects are equal, false otherwise. Note that equality does not mean that the objects are the same object. Consider this code that tests twoInteger
s,one
andanotherOne
, for equality:This code will displayInteger one = new Integer[1], anotherOne = new Integer[1]; if [one.equals[anotherOne]] System.out.println["objects are equal"];objects are equal
even thoughone
andanotherOne
reference two different, distinct objects. They are considered equal because they contain the same integer value.Your classes should override this method to provide an appropriate equality test. Your
equals
method should compare the contents of the objects to see if they are functionally equal and returntrue
if they are.
The getClass
Method
ThegetClass
method is a final method [cannot be overridden] that returns a runtime representation of the class of this object. This method returns aClass
object. You can query theClass
object for a variety of information about the class, such as its name, its superclass, and the names of the interfaces that it implements. The following method gets and displays the class name of an object:One handy use of thevoid PrintClassName[Object obj] { System.out.println["The Object's class is " + obj.getClass[].getName[]]; }getClass
method is to create a new instance of a class without knowing what the class is at compile time. This sample method creates a new instance of the same class asobj
which can be any class that inherits fromObject
[which means that it could be any class]:Object createNewInstanceOf[Object obj] { return obj.getClass[].newInstance[]; }
The toString
Method
Object
'stoString
method returns aString
representation of the object. You can usetoString
to display an object. For example, you could display aString
representation of the currentThread
like this:TheSystem.out.println[Thread.currentThread[].toString[]];String
representation for an object is entirely dependent on the object. TheString
representation of anInteger
object is the integer value displayed as text. TheString
representation of aThread
object contains various attributes about the thread, such as its name and priority. For example, the previous of code above display the following:TheThread[main,5,main]toString
method is very useful for debugging and it would behoove you to override this method in all your classes.
Object Methods Covered In Other Lessons or Sections
TheObject
class provides a method,finalize
that cleans up an object before its garbage collected. This method's role during garbage collection is discussed in this lesson in Cleaning Up Unused Objects. Also, Writing afinalize
Method shows you how to write override thefinalize
method to handle the finalization needs for you classes.The
Object
class also provides five methods that are critical when writing multithreaded Java programs:These methods help you ensure that your threads are synchronized and are covered in Threads of Control
notify
notifyAll
wait
[three versions]. Take particular note of the page titled Synchronizing Threads.