5. Что такое инкапсуляция? Пример.

5. Что такое инкапсуляция? Пример.

UNKNOWN

Инкапсуляция — это один из основополагающих принципов объектно-ориентированного программирования (ООП). Этот принцип заключается в том, чтобы объединить данные (поля) и методы, работающие с этими данными, в одном классе и ограничить доступ к внутренним деталям реализации этого класса из внешнего мира.

Представь, что у тебя есть класс BankAccount, который представляет собой банковский счет. У этого класса есть приватное поле balance, которое хранит текущий баланс счета. Чтобы защитить это поле от несанкционированного доступа и изменений, мы делаем его приватным (private). Однако, нам все равно нужно предоставлять возможность узнавать баланс и вносить на счет деньги. Для этого мы создаем публичные методы (public), которые обеспечивают контроль доступа к полю balance.

public class BankAccount {
    // Приватное поле, к которому нельзя получить доступ напрямую извне класса
    private double balance;

    // Публичный метод для получения текущего баланса
    public double getBalance() {
        return balance;
    }

    // Публичный метод для внесения денег на счет
    public void deposit(double amount) {
        if (amount > 0) {
            balance += amount;
        }
    }

    // Публичный метод для снятия денег со счета
    public void withdraw(double amount) {
        if (amount > 0 && amount <= balance) {
            balance -= amount;
        }
    }
}

В этом примере:

  1. Поле balance объявлено как приватное (private), что предотвращает прямой доступ к нему из других классов.
  2. Метод getBalance() позволяет безопасно получить текущий баланс.
  3. Метод deposit(double amount) позволяет вносить деньги на счет, при этом проверяя, что сумма положительная.
  4. Метод withdraw(double amount) позволяет снимать деньги со счета, при этом проверяя, что сумма не превышает текущий баланс и что она положительная.

Преимущества инкапсуляции:

  1. Защита данных: Инкапсуляция позволяет скрыть внутреннее состояние объекта и защищает его от некорректных изменений извне.
  2. Упрощение изменения кода: Если в будущем нужно изменить реализацию класса, можно сделать это, не влияя на остальную часть программы, так как внешний интерфейс класса остается неизменным.
  3. Контроль доступа: Через методы доступа (геттеры и сеттеры) можно контролировать, как и когда данные изменяются или извлекаются.

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


Предыдущий вопрос: 4. Назовите основные принципы ООП.

Следующий вопрос: 6. Что такое наследование? Пример

Все вопросы по теме:список

Все темы:список

Вопросы/замечания/предложения/нашли ошибку:напишите мне

Report Page