Принципи ООП

Додано: 7 грудня 2020
Предмет: Інформатика
Тест виконано: 30 разів
10 запитань
Запитання 1

Що відбувається в прикладі коду.

class Base {

public:

void f (int);

void f (double);

};

class D: public Base {

public:

void f (char);

};

варіанти відповідей

все вірно записано. Класи правильно спадкуються

f приховує ВСЕ функції Base :: f


якщо в похідному класі оголошений член з тим жеіменем що і в базовому, то він приховує всі однойменні члени базового класу без урахування правил перевантаження. Цього нужно унікати.

клас Base перекриває функції класу D, що не правильно

правила єдиності відповідальності (абстракції) порушено

Запитання 2

Для того щоб не порушувати правила єдиної відповідальності потрібно, наприклад:

варіанти відповідей

писати код, як є, і не думати про принципи

не використовувати множинне спадкоємство. Класи проектувати не залежними.

використовувати множинне спадкоємство

Використовувати множинне спадкування тільки чистих абстрактних базових класів, при цьому допустимо успадкування від одного конкретного базового класу


краще ввести додаткові чисті абстрактні класи (інтерфейси) і скористатися агрегацией


Запитання 3

Абстрактні класси — це класси, які

варіанти відповідей

не мають екземплярів

можуть мати екземпляри класів, які перевантажуються в класах нащадках

це означає, що в них присутні функції члени, які оголошені, але не визначені. Ці функції визначаються в спадкоємців, які уточнюють дану абстракцію.

використовують обов'язково агрегацію для спадкування інших класів

Запитання 4

Інтерфейс в с++

варіанти відповідей

абстрактний клас, який має тільки чисті віртуальні функції

клас, який має віртуальні функції

звичайний клас, який є базовим для інших

клас, який включається і інші класи за допомогою композиції або агрегації

Запитання 5

До якого принципу можна віднести вираз: Класи не повинні залежати від контрактів, які вони не використовують.

варіанти відповідей

Принцип поділу інтерфейсів

Принцип відкритості/закритості

Принцип Барбари Лісков

Принцип інверсії залежності

Запитання 6

До якого принципу можна віднест висловлювання: Модулі вищого рівня не повинні залежати від модулів нижчого рівня

варіанти відповідей

Принцип Барбари Лісков

Принцип єдиної відповідальності

Принцип інверсії залежності

Принцип поділу інтерфейсів

Запитання 7

До якого принципу можна віднести висловлювання: Клас повинен реалізовувати одну і тільки одну абстракцію і реалізовувати її повністю

варіанти відповідей

Принцип поділу інтерфейсу

Принцип інверсії залежності

Принцип відкритості/закритості

Принцип єдиної відповідальності

Запитання 8

Стосунки в композиції - це стосунки 

варіанти відповідей

частини-цілого

представлені як тип відношення "має"

в яких частини можуть належати більш ніж одному цілому за раз

при яких створенні/знищенні частини не несуть відповідальності за створення/знищення своїх частин

Запитання 9

Програміст розробляє програму СТО. Вкажіть йому не правильний хід думок.

варіанти відповідей

Клас автомобіль батько, клас дизель автомобіль і клас бензиновий автомобіль нащадки

Клас автомобіль батько, клас Інші автомобілі нащадок

Потрібно створити абстрактний клас і працювати з автомобілями не як з об'єктом, а як з абстракцією

Абстрактний клас автомобіль, нащадки дизельний автомобіль, бензиновий автомобіль

Запитання 10

Розглянемо класи геометричних фігур - точка, коло, сфера.


Ми могли б реалізувати три класи, незалежно один від одного, але тоді кожен з них містив би дані з координатами і відповідний набір функцій - тобто в нашій програмі з'явився б повторюваний код. Згідно Фаулеру «дублювання коду свідчить про втрачену можливість для абстракції», тобто серед трьох класів нам треба знайти найбільш загальний і застосувати механізм успадкування, зробити це можна різними способами. Оберіть правильний варіант:


варіанти відповідей

Від точки успадкуємо коло і сферу

Від кола успадкуємо точку і сферу

Коло реалізується за допомогою точки, яка описує центр. Точка і коло можна розглядати як фігури. Сфера не реалізується за допомогою кола.

Потрібе уточнення завдання, що конкретно будуть виконувати класи

Створюйте онлайн-тести
для контролю знань і залучення учнів
до активної роботи у класі та вдома

Створити тест