The object cloning is a way to the create exact copy of an object. clone() method of Object class is used to clone an object.
The java.lang.Cloneable interface must be implemented by the class whose object clone we want to create. If we don´t implement Cloneable interface, clone() method generates
CloneNotSupportedException.
********************** Syntax of the clone() method is as follows ***********************
protected Object clone() throws CloneNotSupportedException
=================== Why use clone() method ? =====================
The clone() method saves the extra processing task for creating the exact copy of an object. If we perform it by using the new keyword, it will take a lot of processing to be performed that is why we use object cloning.
******************** Let´s see the simple example of object cloning ********************
class Student implements Cloneable{
int rollno;
String name;
Student(int rollno,String name){
this.rollno=rollno;
this.name=name;
}
public Object clone()throws CloneNotSupportedException{
return super.clone();
}
public static void main(String args[]){
try{
Student s1=new Student(101,"amit");
Student s2=(Student)s1.clone();
System.out.println(s1.rollno+" "+s1.name);
System.out.println(s2.rollno+" "+s2.name);
}catch(CloneNotSupportedException c){}
}
}
========================= Output =============================
101 amit
101 amit
As you can see in the above example, both reference variables have the same value. Thus, the clone() copies the values of an object to another. So we don´t need to write explicit code to copy the value of an object to another.
If we create another object by new keyword and assign the values of another object to this one, it will require a lot of processing on this object. So to save the extra processing task we use clone() method.
5