关于返回引用可变对象

注意:不要编写返回可变对象引用的get方法。

可变对象:可变对象:类中有方法可以改变其对象实例域(数据域)的类

举例:

class Example{
private Date birthday;

public Date getBirthday{ //BAD
return birthday;
}

}

当获取一个Date类的实例date时,可以由date来修改实例变量。这样就会破坏封装性,如果要返回一个可变对象的引用,首先应该使用clone()方法进行克隆。对象克隆时指存放在另一个新位置上的对象副本。

class Example{
private Date birthday;

public Date getBirthday{ //BAD
return (Date)birthday.clone()
}

}

上一篇:Java 基础(多态的应用:行为型设计模式-模板方法设计模式TemplateMethod)


下一篇:HashSet作业练习