2012-01-07 4 views
0

Можно создать дубликат:
Considering object encapsulation, should getters return an immutable property?Инкапсуляция в Java

ли инкапсуляция мандат неизменность класса?

Class Employee{ 
    private Date hireDate; 
    public Date getHireDate(){ 
    return hireDate; 
    } 
} 

В какой-то метод клиента:

Employee emp = new Employee(); 
Date temp = emp.getHireDate(); 
temp.setTime(...);//The Hiredate of the employee would be corrupted... 

ответ

0

Нет, это просто означает, что доступ к членам этого класса разрешается только через его методы.

Если вы хотите предотвратить проблему, которую вы выделили, класс может вернуть копию объекта Date. Но даже тогда вы можете предоставить метод setHireDate() и по-прежнему справедливо ссылаться на дату как на «инкапсулированную».

Смежные вопросы