Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы по ООП 2023 / Вопросы к экзамену С ОТВЕТАМИ.docx
Скачиваний:
0
Добавлен:
09.09.2026
Размер:
78 Кб
Скачать

Группа 1

  1. Что такое парадигма программирования? Что такое ООП?

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

Объектно-ориентированное программирование (императивный) — это парадигма разработки программных систем, в которой приложения состоят из объектов.

  1. В чем заключается принцип ООП "Абстракция"?

Это свойство объектно-ориентированного программирования. Его суть заключается в том, что каждый верхний слой над объектом (класс) является более абстрактным, чем его «младшая версия». Разработчику не нужно много раз создавать один и тот же объект, приписывая одинаковые атрибуты и методы.

  • Абстракция - рассмотрение только значимой информации предметной области и исключение незначимой

  • Отображение только существенной информации

  • Выделение свойств и интерфейса

  • Единицей абстракции может быть класс или файл (не в ООП)

  1. В чем заключается принцип ООП "Наследование"?

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

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

  • Механизм, с помощью которого один объект полностью или частично перенимает свойства другого

  • Поддержка понятия иерархической классификации

  • Уменьшение количества дублирующего кода

  1. В чем заключается принцип ООП "Инкапсуляция"?

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

  • Инкапсуляция - свойство системы объединение данных и методов, работающих с ними, в классе

  • Связь кода и данных

  • Защита данных от внешнего воздействия

  • Основа инкапсуляции - класс

  • Простое сокрытие данных - не инкапсуляция

  1. В чем заключается принцип ООП "Полиморфизм"?

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

Так вот, полиморфизм даёт возможность использовать одни и те же методы для объектов разных классов. Неважно, как эти объекты устроены, — в ООП можно сказать самолёту и квадрокоптеру: «Лети», и они будут делать это как умеют: квадрокоптер закрутит лопастями, а самолёт начнёт разгон по взлётно-посадочной полосе.

  • Полиморфизм - использование объектов с общим интерфейсом без информации о внутренней структуре объекта

  • Реализация принципа: Один интерфейс – множество реализаций

  • Механизм, скрывающий за интерфейсом общий класс действий

  1. Что такое статический полиморфизм? Приведите пример статического полиморфизма.

Статический полиморфизм: это когда решение о том, какой метод выполнить, определяется во время компиляции. Примером этого может быть перегрузка метода.

  1. Что такое динамический полиморфизм? Приведите пример динамического полиморфизма?

Динамический полиморфизм: это когда решение о выборе метода для выполнения принимается во время выполнения.

При динамическом полиморфизме вызвать переопределеный метод можно при выполнении программы. Скопировать метод родительского класса и обозначить его в дочернем можно с помощью ссылочной переменной родительского класса, при этом вызванный метод будет определяться по объекту, на который она ссылается.

  1. Что такое ссылка на объект? В чем отличие ссылки и указателя на объект?

Ссылка – это автоматически разыменовываемый указатель на объект (связь переменная - объект).

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

  • Указатели могут указывать "в никуда" (быть равными NULL), в то время как ссылка всегда указывает на определенный объект. GCC может без выдачи предупреждений обработать код наподобие int &x = *(int*)0;, однако поведение подобного кода может быть непредсказуемым.

  • Вы не можете получить адрес ссылки, как можете это делать с указателями.

  • Не существует арифметики ссылок, в то время как существует арифметика указателей. Однако есть возможность получить адрес объекта, указанного по ссылке, и применить к этому адресу арифметику указателей (например &obj + 5).

Соседние файлы в папке Лабы по ООП 2023