Встречается на собеседованиях • сегодня

Должны ли все данные быть закрытыми модификаторами доступа при инкапсуляции

Принцип инкапсуляции предполагает скрытие внутреннего состояния объекта и защиту данных от несанкционированного доступа. Однако не все данные обязательно делать private.

Рекомендации:

  1. Поля, изменяющие состояние объекта, должны быть private с геттерами/сеттерами при необходимости
  2. Константы (static final) можно оставлять public, если они часть API
  3. protected уместен для полей, доступных наследникам
  4. Внутренние вспомогательные поля класса можно оставлять package-private (без модификатора)

Пример:

java
public class Account {
    private double balance; // скрыто
    protected String currency; // доступно наследникам
    public static final String BANK_NAME = "MyBank"; // константа
    
    void internalCalculate() { // package-private метод
        // внутренняя логика
    }
}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы