import java.util.*;public class emplo implements Cloneable {
public emplo(String n,double s)
{
name=n;
salary=s;
}
public emplo clone() throws CloneNotSupportedException
{
emplo cloned=(emplo)super.clone();
cloned.hireDay=(Date)hireDay.clone();
return cloned;
}
public void setHireDay(int year ,int month,int day)
{
hireDay=new GregorianCalendar(year , month-1 , day).getTime();
}
public void raiseSalary(double x)
{
double raise=salary*x/100;
salary+=raise;
}
public String ToString()
{
return "emplo[name=" +name + ",salary=" + salary + ",hireDay="+ hireDay + "]";
}
private String name;
private double salary;
private Date hireDay;}
import java.util.*;
/**
*
* @author Administrator
*/
public class Main { /**
* @param args the command line arguments
*/
public static void main(String[] args) {
try
{
emplo ori=new emplo("chenpeng",40000);
ori.setHireDay(2008, 5, 5);
emplo copy=ori.clone();
copy.raiseSalary(10);
copy.setHireDay(2000,1, 1);
System.out.println("ori="+ori);
System.out.println("copy="+copy);
}
catch(CloneNotSupportedException e)
{
e.printStackTrace();
}
}
}
public emplo(String n,double s)
{
name=n;
salary=s;
}
public emplo clone() throws CloneNotSupportedException
{
emplo cloned=(emplo)super.clone();
cloned.hireDay=(Date)hireDay.clone();
return cloned;
}
public void setHireDay(int year ,int month,int day)
{
hireDay=new GregorianCalendar(year , month-1 , day).getTime();
}
public void raiseSalary(double x)
{
double raise=salary*x/100;
salary+=raise;
}
public String ToString()
{
return "emplo[name=" +name + ",salary=" + salary + ",hireDay="+ hireDay + "]";
}
private String name;
private double salary;
private Date hireDay;}
import java.util.*;
/**
*
* @author Administrator
*/
public class Main { /**
* @param args the command line arguments
*/
public static void main(String[] args) {
try
{
emplo ori=new emplo("chenpeng",40000);
ori.setHireDay(2008, 5, 5);
emplo copy=ori.clone();
copy.raiseSalary(10);
copy.setHireDay(2000,1, 1);
System.out.println("ori="+ori);
System.out.println("copy="+copy);
}
catch(CloneNotSupportedException e)
{
e.printStackTrace();
}
}
}
copy=test.emplo@ab95e6克隆成功,有什么问题?
不然你没有Object的toString()
ori=emplo[name=chenpeng,salary=40000.0,hireDay=Mon May 05 00:00:00 CST 2008]
copy=emplo[name=chenpeng,salary=44000.0,hireDay=Sat Jan 01 00:00:00 CST 2000]
import java.util.*;public class CloneTest
{
public static void main(String[] args)
{
try
{
Employee original = new Employee("John Q. Public", 50000);
original.setHireDay(2000, 1, 1);
Employee copy = original.clone();
copy.raiseSalary(10);
copy.setHireDay(2002, 12, 31);
System.out.println("original=" + original);
System.out.println("copy=" + copy);
}
catch (CloneNotSupportedException e)
{
e.printStackTrace();
}
}
}class Employee implements Cloneable
{
public Employee(String n, double s)
{
name = n;
salary = s;
} public Employee clone() throws CloneNotSupportedException
{
// call Object.clone()
Employee cloned = (Employee)super.clone();
// clone mutable fields
cloned.hireDay = (Date)hireDay.clone();
return cloned;
} /**
Set the hire day to a given date
@param year the year of the hire day
@param month the month of the hire day
@param day the day of the hire day
*/
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 "Employee[name=" + name
+ ",salary=" + salary
+ ",hireDay=" + hireDay
+ "]";
} private String name;
private double salary;
private Date hireDay;
}