Sobes.tech
Назад к вопросам
Junior — Middle
73

Можешь ли ты объяснить основные принципы инкапсуляции в объектно-ориентированном программировании?

Компании, где спрашивали
AstonAston

Ответ от нейросети

sobes.tech AI

Инкапсуляция — один из основных принципов объектно-ориентированного программирования, который заключается в скрытии внутренней реализации объекта и предоставлении доступа к данным только через определённые методы.

Основные моменты:

  • Сокрытие данных: внутренние поля объекта делают приватными, чтобы предотвратить прямой доступ извне.
  • Контролируемый доступ: предоставление публичных методов (геттеров и сеттеров) для чтения и изменения состояния.
  • Защита целостности данных: методы могут проверять корректность входных данных перед изменением.

Пример на Python:

class Person:
    def __init__(self, name):
        self.__name = name  # приватное поле

    def get_name(self):
        return self.__name

    def set_name(self, name):
        if isinstance(name, str) and name:
            self.__name = name
        else:
            raise ValueError("Имя должно быть непустой строкой")

p = Person("Иван")
print(p.get_name())  # Иван
p.set_name("Пётр")
print(p.get_name())  # Пётр

Таким образом, инкапсуляция помогает защитить объект от некорректного использования и облегчает поддержку кода.