Какое определение наиболее точно отражает понятие инициализации класса в ООП?

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

Какое из перечисленных действий нарушает принцип инкапсуляции в ООП?

Определение всех методов класса как статических
Распределение данных и методов класса по разным модулям или файлам
Непосредственное изменение приватных полей класса извне без использования методов класса 
Открытие доступа к приватным полям класса через геттеры и сеттеры
Использование модификатора доступа public для всех методов класса

Какой шаблон проектирования НЕ основан на реализации принципа инкапсуляции ООП?

Команда
Информационный эксперт
Фасад
Наблюдатель.
Стратегия

В каком из следующих случаев соблюден принцип открытости/закрытости?

Класс Polygon содержит методы для работы с многоугольниками, но они не могут быть переопределены для работы с окружностями
Класс Circle имеет жестко заданные методы для вычисления площади и периметра круга, и их нельзя расширить для поддержки других геометрических фигур
Класс Triangle содержит жестко заданные значения длин сторон, которые нельзя изменить после создания объекта.
Класс Shape определяет абстрактный метод calculateArea(), и новые геометрические фигуры могут быть созданы путем наследования от Shape и реализации этого метода
Класс Rectangle предоставляет только один конструктор, который ограничивает возможность создания прямоугольников с разными характеристиками

Какой модификатор доступа следует использовать, чтобы обеспечить доступность полей и методов класса из самого класса, из производного класса и из других классов в той же сборке, но не из других сборок?

Protected Internal
Protected
Public Internal
Private
Public

Если несколько интерфейсов, реализованных абстрактным классом, содержат одинаковые методы, то...

… это вызовет конфликт: в абстрактном классе возникнет ошибка компиляции из-за конфликта имен методов
… это не вызывает конфликта: класс предоставляет единственную реализацию этого метода, и она будет удовлетворять обоим интерфейсам
… это не вызывает конфликта: абстрактный класс автоматически наследует реализацию метода из первого интерфейса и игнорирует остальные
… конфликт возникнет в некоторых языках программирования, где запрещено неявное множественное наследование
… это не вызывает конфликта: компилятор создаст адаптеры для методов, чтобы избежать конфликта

В какой из ситуаций ниже корректно применить статические методы класса?

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

Какое утверждение верно?

В C++ наследование позволяет дочернему классу переопределить методы родительского класса
В Java дочерний класс может переопределить конструктор без параметров родительского класса
В Java в дочернем классе создается и хранится копия родительского класса
В Python дочерний класс всегда имеет доступ ко всем приватным членам родительского класса
Для каждого дочернего класса в C# может существовать только один родительский класс 

Динамический полиморфизм достигается в основном с помощью...

Множественного наследования
Наследования
Шаблонов
Виртуальных методов
Абстрактных классов

Выберите НЕПОДХОДЯЩИЙ вариант продолжения тезиса:
Снижения сильной связанности классов в иерархии наследования можно достигнуть с помощью…

Использования интерфейсного наследования
Использования статических классов
Применения принципа инверсии управления
Использования модификаторов доступа
Применения принципов композиции вместо наследования

Выберите верное суждение о сериализации с наследованием.

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

Какое из утверждений об особенностях объектно-ориентированных языков программирования верно?

Ключевое слово «virtual» для реализации виртуальных функций используется в C#, TypeScript и JavaScript
Java, Python и C++ используют интерфейсы для реализации полиморфизма
ООП может быть реализовано в Fortran и Assembler
В Python используются такие типы модификаторов доступа как private, protected, internal и protected internal
Множественное наследование может быть реализовано в Python и С++

Вы создаете игрового персонажа для компьютерной игры с использованием ООП. Какие из перечисленных сущностей будут относиться к классу, объекту, атрибутам и методам?

Класс — маг, объекты — запас здоровья, запас магии (мана), атрибут — эльф, методы — скорость бега, скорость восстановления здоровья мага
Класс — маг, объекты — запас здоровья, запас магии (мана), атрибуты — заклинания, которые использует маг, метод — эльф
Класс — эльф, объекты — заклинания, которые использует маг, атрибут — маг, методы — запас здоровья (НР), запас магии (мана)
Класс — маг, объекты — запас здоровья (НР), запас магии (мана), атрибут — эльф, методы — заклинания, которые использует маг
Класс — эльф, объект — маг, атрибуты — запас здоровья (HP), запас магии (мана), методы — заклинания, которые использует маг

Выберите верное суждение о компонентно-ориентированном программировании.

Сходством агентно- и компонентно-ориентированного программирования является создание агентов, которые могут взаимодействовать друг с другом и с окружающей средой
Компонентно-ориентированное программирование является одним из видов класс-ориентированного
Особенностью компонентно-ориентированного программирования является создание прототипов объектов, которые могут быть клонированы и изменены
Основная идея концепции — создание программных компонентов, которые могут быть использованы в разных приложениях
Компонентно-ориентированное программирование направлено прежде всего на повышение надёжности закрытых статических систем

Выберите верное суждение об объектно-ориентированных базах данных.

Под объектом в объектно-ориентированной базе данных понимается строка в таблице базы данных
Недостатком объектно-ориентированных баз данных является то, что в них возможны только два типа связей: один к одному и один к многим
Для работы с объектно-ориентированными базами данных можно использовать Java, Python и Ruby
Реляционным базам данных характерен более гибкий и масштабируемый подход к хранению данных, чем объектно-ориентированным
В объектно-ориентированной базе данных можно использовать только одинарное наследование