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'意味着該方法不能被覆蓋。對於「不可變視圖」,我指的是將只讀訪問委託給另一個對象的對象,但不允許任何突變。 –