java封装的一个小问题

我们封装好一个类的时候,设定好它的私有属性,常会用到访问器get方法来访问这些私有属性,如果再调用私有对象的set方法就会改变就会对该对象的私有属性。

有时我们希望通过set方法改变这个私有属性,有时候如果一个变量指向这个属性我们又不希望改变原有属性可以用clone()方法。

package mytest;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class Employee {

private Calendar hireDay=Calendar.getInstance();

public Calendar getHireDay(){
return this.hireDay;
//              return this.hireDay.clone();
}
public Employee(Date date){
hireDay.setTime(date);
}

public static void main(String[] args) {
Employee employee=new Employee(new Date());
Calendar date=employee.getHireDay();
Long tenYear=1L*365L*24L*60L*60L*1000L;
date.setTimeInMillis(tenYear);
System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(date.getTime())+"---"+date.getTime()+"--"+tenYear);
}
}

猜你喜欢

转载自cxhang.iteye.com/blog/2359183