Объединение данных и кода для их обработки в единую структуру - класс, с реализацией контроля доступа к внутренним элементам класса через строго определенный интерфейс взаимодействия Подробнее про [[Модификаторы|модификаторы доступа]] Внешние классы могут быть только `public` и `default`, в отличие от [[Вложенные классы|вложенных]] ## Публичные и приватные поля и методы Внутреннее закрытое состояние: - детали реализации не имеют значения для внешних пользователей класса - реализация можно менять как угодно, пока не затронут внешний интерфейс Внешний открытый интерфейс: - фиксируется в начале разработки и далее не должен меняться - обеспечивает внешним пользователям возможность управлять объектами класса в контролируемых пределах ## Getter/Setter Стандартная практика - поля private, методы - public Геттер может выводить значение в определенном формате Сеттер может валидировать данные Подробнее про [[Конструкторы|конструкторы]]