P113警告 不要编写返回引用可变对象的访问器方法。
举例:
class Employee
{
private Date hireDay;
.....
public Date getHireDay()
{
return hireDay;
}
......
}
这样破坏了类的封装性,如
Employee harry=......;
Date d=harry.getHireDay();
d.setTime(d.getTime()-22222);
这样Employee中的数据域也发生了改变。
在java中,类(如Date类) Date d=new Date();
这里的d就相当于c++中的Date *d;
d是指向Date对象的实例的指针,于是便可以通过其修改类中的私有变量;
我的理解 可变对象就是其中有改变其数据域的方法的对象
新手,刚学java,求指教~