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;}public class Main
{ 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;}public class Main
{ 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 class emplo中的public去掉就OK了...............
还有重点就是,你把这个public String ToString() 改为public String toString() ;
你的目的明明是重写toString();
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;
}