Get/Set方法用于保护我的类字段。在java中获取/设置和参考
但由于Java的工作,参照我的私人领域仍然得到暴露..
例如
private Date d;
Date getDate(){
return d;
}
void setDate(Date inD){
//Checks for inD
d = inD;
}
//Still the issue is
getDate().setHours(xyz);
什么是正确的方法?因为我不想更改我的日期而不使用setDate。
你能否解释一下“不可改变的看法”?如果可能的话,我认为要返回一个const引用。像public public Date getDate() – sethi
return new Date(d.getTime()); - 请解释这一点,我不明白,一个get方法如何帮助不改变原始值? – gowtham
@sethi:不,在Java中没有像“const引用”这样的概念。在方法声明中使用'final'意味着该方法不能被覆盖。对于“不可变视图”,我指的是将只读访问委托给另一个对象的对象,但不允许任何突变。 –