12. Основные понятия ООП: инкапсуляция, наследование, полиморфизм.

Понятие объекта. Категории объектов. Отношения между объектами. Понятие класса. Отношения между классами. Понятие домена.

Основные понятия ООП

Инкапсуляция

  1. Определение

    • Инкапсуляция — это процесс сокрытия деталей реализации объекта и предоставления интерфейса для взаимодействия с ним.

  2. Пример

    • Объекты содержат приватные данные и публичные методы для работы с этими данными.

    class BankAccount {
    private:
        double balance;
    public:
        void deposit(double amount) {
            balance += amount;
        }
        double getBalance() const {
            return balance;
        }
    };

Наследование

  1. Определение

    • Наследование позволяет создавать новый класс на основе существующего, унаследуя его свойства и методы.

  2. Пример

    • Создание класса SavingsAccount, который наследует от BankAccount.

Полиморфизм

  1. Определение

    • Полиморфизм позволяет объектам разного типа быть обработанными через один интерфейс.

  2. Пример

    • Использование виртуальных функций и указателей на базовый класс для вызова переопределенных методов производных классов.

Понятие объекта

  1. Определение

    • Объект — это экземпляр класса, который содержит данные и методы для работы с этими данными.

  2. Пример

    • Создание объекта класса BankAccount.

Категории объектов

  1. Активные объекты

    • Объекты, которые могут инициировать действия самостоятельно, например, потоки или процессы.

  2. Пассивные объекты

    • Объекты, которые выполняют действия только по запросу, например, обычные данные или структуры.

  3. Абстрактные объекты

    • Объекты, которые не имеют конкретной реализации и предназначены для предоставления интерфейса, например, абстрактные классы и интерфейсы.

Отношения между объектами

  1. Ассоциация

    • Простое отношение между объектами, которое показывает, что один объект знает о другом.

  2. Агрегация

    • "Has-a" отношение, где один объект является частью другого, но может существовать отдельно.

  3. Композиция

    • Сильная форма агрегации, где жизнь одного объекта зависит от другого.

  4. Наследование

    • Отношение "is-a", где один класс является расширением другого.

Понятие класса

  1. Определение

    • Класс — это шаблон для создания объектов, который определяет их данные и методы.

  2. Пример

    • Определение класса BankAccount.

Отношения между классами

  1. Наследование

    • Класс может наследовать свойства и методы другого класса.

  2. Агрегация и композиция

    • Классы могут содержать объекты других классов в качестве своих членов.

  3. Ассоциация

    • Классы могут иметь ссылки или указатели на объекты других классов.

Понятие домена

  1. Определение

    • Домен — это область предметной области, которую охватывает программное обеспечение или система.

  2. Пример

    • В банковской системе домен может включать учетные записи, транзакции, клиентов и т.д.

Last updated