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();
     }
      
       
    }
    }

解决方案 »

  1.   

    老大,你怎么把2个public类放在一起啊,同一java文件中可是只能够有一个公共类的
            把public class emplo中的public去掉就OK了............... 
      

  2.   

    你这个是2个文件的内容吗?是的话,一个文件只有一个public类
    还有重点就是,你把这个public String ToString() 改为public String toString() ;
    你的目的明明是重写toString();
      

  3.   

    楼主这个是core java上的原例题啊,呵呵 
    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; 
      

  4.   

    上面那个程序楼主把Employee改成emplo就是楼主想要得了
      

  5.   

    跟这个有关系吗?没觉得...他主要是想重写toString,只是写错为ToString,类名字到没关系!