例子:
private Date birthDay; public Date getBirthDay(){ return birthDay; }
上段代码会破坏封装性!为什么?用什么方式好?
这样封装有些时候会间接的修改属性birthDay。
使用对象的clone方法就不会破坏封装性。
public Date getBirthDay(){ return birthDay.clone(); }
Java核心技术卷一给出的解释:如果需要返回一个可变对象的引用,应该首先对它进行克隆(clone)。对象clone是指存放在另一个位置上的的对象副本。
此文对此解释到位,详情:http://blog.chinaunix.net/uid-26434689-id-3241005.html
此文的评论很好,详情:http://bbs.csdn.net/topics/240007740
白衣横马出门去,归来依旧那少年