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

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

Компании, где спрашивали
РедСофт

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

sobes.tech AI

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

Это позволяет:

  • Защитить внутренние данные от некорректного использования или изменения извне.
  • Изменять внутреннюю реализацию без влияния на внешний код, использующий объект.
  • Упрощать взаимодействие с объектом, предоставляя только необходимые методы.

В C++ инкапсуляция достигается с помощью спецификаторов доступа: private, protected и public. Например:

class BankAccount {
private:
    double balance; // скрытое поле

public:
    BankAccount(double initial) : balance(initial) {}

    void Deposit(double amount) {
        if (amount > 0) {
            balance += amount;
        }
    }

    double GetBalance() const {
        return balance;
    }
};

Здесь поле balance скрыто от прямого доступа, а взаимодействие с ним происходит через методы Deposit и GetBalance. Это предотвращает некорректное изменение баланса и обеспечивает контроль над состоянием объекта.