package 第六章;
try{}catch{} 还不怎么懂
//克隆
import java.util.*;
public class ClonTest {
public static void main(String[] args)
{
try
{
Employee_a original=new Employee_a("asdfg",50000);
original.setHireDay(2000,1,1);
Employee_a copy=original.clone();
copy.raiseSalary(10);
copy.setHireDay(2002,5,5);
System.out.println("original="+original); //有了toString方法后可以直接用original这样打印对象信息
System.out.println("copy="+copy);
}
catch(CloneNotSupportedException e)
{
e.printStackTrace(); //当楚翔上面那个错误时,这个方法可以追踪错误来源
}
}
}
class Employee_a implements Cloneable //接口
{
public Employee_a(String n,double s)
{
name=n;
salary=s;
hireDay=new Date();
}
//..............................................................
public Employee_a clone() throws CloneNotSupportedException //后面这一串为声明异常,这个异常意思是:
//如果在没有实现Cloneable接口的实例上调用Object的clone方法,则会导致抛出CloneNotSupportedException异常
//当然这个程序没错就是了- -
{
Employee_a cloned=(Employee_a)super.clone();
cloned.hireDay=(Date)hireDay.clone();
return cloned;
}
//..............................................................
public void setHireDay (int year,int month,int day)
{
Date newHireDay=new GregorianCalendar(year,month-1,day).getTime();
hireDay.setTime(newHireDay.getTime());
}
public void raiseSalary(int byPercent)
{
double raise=salary*byPercent/100;
salary+=raise;
}
public String toString()
{
return "Employee_a[name="+name+",salary="+salary+",hireDay="+hireDay+"]";
}
private String name;
private double salary;
private Date hireDay;
}
try{}catch{} 还不怎么懂
//克隆
import java.util.*;
public class ClonTest {
public static void main(String[] args)
{
try
{
Employee_a original=new Employee_a("asdfg",50000);
original.setHireDay(2000,1,1);
Employee_a copy=original.clone();
copy.raiseSalary(10);
copy.setHireDay(2002,5,5);
System.out.println("original="+original); //有了toString方法后可以直接用original这样打印对象信息
System.out.println("copy="+copy);
}
catch(CloneNotSupportedException e)
{
e.printStackTrace(); //当楚翔上面那个错误时,这个方法可以追踪错误来源
}
}
}
class Employee_a implements Cloneable //接口
{
public Employee_a(String n,double s)
{
name=n;
salary=s;
hireDay=new Date();
}
//..............................................................
public Employee_a clone() throws CloneNotSupportedException //后面这一串为声明异常,这个异常意思是:
//如果在没有实现Cloneable接口的实例上调用Object的clone方法,则会导致抛出CloneNotSupportedException异常
//当然这个程序没错就是了- -
{
Employee_a cloned=(Employee_a)super.clone();
cloned.hireDay=(Date)hireDay.clone();
return cloned;
}
//..............................................................
public void setHireDay (int year,int month,int day)
{
Date newHireDay=new GregorianCalendar(year,month-1,day).getTime();
hireDay.setTime(newHireDay.getTime());
}
public void raiseSalary(int byPercent)
{
double raise=salary*byPercent/100;
salary+=raise;
}
public String toString()
{
return "Employee_a[name="+name+",salary="+salary+",hireDay="+hireDay+"]";
}
private String name;
private double salary;
private Date hireDay;
}