62,616
社区成员
发帖
与我相关
我的任务
分享
import java.util.*;
public class CloneTest {
public static void main(String[] args) throws CloneNotSupportedException {
Employee orginal = new Employee("Tom",5255);
orginal.setHiredate(2000, 1, 1);
Employee copy = (Employee)orginal.clone();
copy.raiseSalary(10);
copy.setHiredate(2011, 3, 4);
System.out.println("orginal="+orginal);
System.out.println("copy="+copy);
}
}
class Employee implements Cloneable{
private String name;
private double salary;
private Date hiredate;
public Employee(String n,double s){
this.name = n;
this.salary = s;
}
public String toString() {
String str = "Employee[name="+name+",salary="+salary+",hiredate="+hiredate+"]";
return str;
}
public Object clone() throws CloneNotSupportedException {
//Employee cloned = (Employee)super.clone();
//cloned.hiredate = (Date)hiredate.clone();
//return cloned;
return super.clone(); //默认是浅拷贝
}
public void raiseSalary(int percent) {
double raise = salary*percent/100;
salary+=raise;
}
public void setHiredate(int year,int month,int day) {
hiredate = new GregorianCalendar(year,month-1,day).getTime();
}
}
String a=new String("i'm a");
String b=a;
String b=new String("i'm b");