Home Java Example Java Util clone method in Java
Questions:Ask|Latest


 
 

Share on Google+Share on Google+

clone method in Java

Advertisement
clone() method in Java is used to create and return copy of the object. Clone() method is used in class where Cloneable interface is implemented but throws a CloneNotSupportedException where a Cloneable interface is not implemented.

clone() method in Java is used to create and return copy of the object. Clone() method is used in class where Cloneable interface is implemented but throws a CloneNotSupportedException where a Cloneable interface is not implemented.

public clone() method is not specified in many interfaces and abstract classes. Also it's use in against abstraction.

If you want to retrieve an object of clone() method, you must cast it in the same class in the appropriate type.

One can use copy constructor instead of clone() method.

In the following example we will learn how clone() method works and is used.

import java.util.*;

public class CloneTest{
  public static void main(String[] args){

  Employee emp = new Employee("Amardeep", 50000);
  emp.setHireDay(2005,0,0);
  Employee emp1 = (Employee)emp.clone();
  emp1.raiseSalary(20);
  emp1.setHireDay(2008, 12, 31);
  System.out.println("Employee=" + emp);
  System.out.println("copy=" + emp1);
  }
}
class Employee implements Cloneable{
  public Employee(String str, double dou){
  name = str;
  salary = dou;
  }
  public Object clone(){
  try{
  Employee cloned = (Employee)super.clone();
  cloned.hireDay = (Date)hireDay.clone();
  return cloned;
  }
  catch(CloneNotSupportedException e){
  System.out.println(e);
  return null;
  }
  }
  public void setHireDay(int year, int month, int day){
  hireDay = new GregorianCalendar(year,month - 1, day).getTime();
  }
  public void raiseSalary(double byPercent){
  double raise = salary * byPercent/100;
  salary += raise;
  }
  public String toString(){
  return "[name=" + name+ ",salary=" + salary+ ",hireDay=" + hireDay+ "]";
  }
  private String name;
  private double salary;
  private Date hireDay;
}

Output:

C:\help>javac CloneTest.java

C:\help>java CloneTest
Employee=[name=Amardeep, salary=50000.0, hireDay=Tue Nov 30 00:00:00 GMT+05:30 2004]
copy=[name=Amardeep, salary=60000.0, hireDay=Wed Dec 31 00:00:00 GMT+05:30 2008]

Advertisement

If you enjoyed this post then why not add us on Google+? Add us to your Circles



Liked it!  Share this Tutorial


Follow us on Twitter, or add us on Facebook or Google Plus to keep you updated with the recent trends of Java and other open source platforms.

Posted on: May 15, 2013

Ask Questions?    Discuss: clone method in Java  

Post your Comment


Your Name (*) :
Your Email :
Subject (*):
Your Comment (*):
  Reload Image
 
 
Comments
DMCA.com