Back to questions
Junior — Middle
78
Можете объяснить принцип инкапсуляции в объектно-ориентированном программировании?
Companies where asked
РедСофт
Answer from AI
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. Это предотвращает некорректное изменение баланса и обеспечивает контроль над состоянием объекта.