Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Вопросы к 6ой лабе

.docx
Скачиваний:
1
Добавлен:
04.10.2024
Размер:
16.54 Кб
Скачать

Вопросы к 6ой лабе

  1. Объектно-ориентированное программирование — парадигма программирования, основанная на концепции классов и объектов.

  2. Объект — экземпляр класса, обладающий состоянием и поведением.

Класс — шаблон для создания объектов, определяющий их структуру и поведение.

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

    • Ассоциация — общее отношение между классами.

    • Агрегация — класс содержит или состоит из других классов.

    • Композиция — строгая форма агрегации, где части не могут существовать независимо от целого.

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

    • Наследование — класс наследует характеристики другого класса.

    • Инстанцирование — создание экземпляра класса.

  2. Абстракция — выделение ключевых, существенных характеристик объекта, игнорирование несущественных.

  3. Инкапсуляция — сокрытие деталей реализации и данных класса, предоставление к ним доступа через публичные методы.

  4. Модульность — разделение программы на отдельные независимые модули.

  5. Иерархия — структура наследования или вложенности в программном обеспечении.

  6. Типизация — присваивание типа данным, функциям или объектам.

  7. Сохраняемость — способность системы сохранять состояние объектов между сессиями.

  8. Конструктор и деструктор — специальные методы класса для инициализации и удаления объектов.

  9. Методы класса — функции, определённые внутри класса и имеющие доступ к его данным и поведению.

  10. Абстрактный класс, класс-интерфейс, класс-утилита:

    • Абстрактный класс — класс, содержащий один или более абстрактных методов.

    • Класс-интерфейс — класс, состоящий только из абстрактных методов.

    • Класс-утилита — класс, содержащий только статические методы и переменные.

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

  12. Модель предметной области — абстрактное представление структуры и отношений в предметной области.

  13. Модель проектирования — абстрактное и систематизированное описание компонентов программы и их взаимосвязей.

  14. Диаграммы классов — диаграммы, описывающие структуру системы с показом классов, их атрибутов, методов и отношений.

  15. Наследование:

  • Одиночное — класс наследуется от одного родительского класса.

  • Множественное — класс наследуется от многих родительских классов.

  1. Проблемы множественного наследования:

  • Проблемы разрешения вызовов (например, алмаз проблемы*).

  • Способы решения — использование интерфейсов, виртуальное наследование.

* Алмаз проблемы (или "алмаз смерти") — это термин в программировании, который описывает конкретную проблему, возникающую при использовании множественного наследования в объектно-ориентированных языках программирования, таких как C++. Проблема возникает, когда класс наследуется от двух классов, которые в свою очередь наследуют от одного общего предка.

  1. Полиморфизм — способность объекта использовать методы производного класса, которые переопределяют методы базового класса.

  2. Виртуальная функция — функция, объявленная в базовом классе и предназначенная для переопределения в производных классах.

  3. Таблица виртуальных функций — механизм для поддержки динамического полиморфизма и позднего связывания методов объектов.

  4. Сериализация и десериализация объектов — процесс преобразования объектов в формат, пригодный для сохранения или передачи, и обратно.

  5. Методы сериализации объектов — техники и форматы, используемые для сохранения состояния объектов.

  6. Принципы SOLID — набор принципов для написания удобочитаемого и поддерживаемого кода в ООП.

  7. Принцип единственной ответственности — каждый класс должен иметь одну причину для изменения.

  8. Принцип открытости/закрытости — система должна быть открыта для расширения, но закрыта для модификации.

  9. Принцип подстановки Барбары Лисков — объекты должны быть заменяемы на экземпляры их подклассов без влияния на корректность программы.

  10. Принцип разделения интерфейса — множество клиент-специфичных интерфейсов лучше, чем один общий.

  11. Принцип инверсии зависимостей — модули высокого уровня не должны зависеть от модулей низкого уровня; оба типа модулей должны зависеть от абстракций.