- будь-який метод
- перевантаження методу
- перевизначення методу
- компіляція
- кількість людей у кожному будинку в невеликому мікрорайоні
- розмір ділянки для кожного будинку в невеликому районі
- колір кожного будинку в маленькому районі
- погодні умови для кожного будинку в невеликому районі
- щоб уникнути надлишкового кодування у дітей
- дослідити гіпотетичний клас
- щоб запобігти використанню небажаного методу
- щоб зарезервувати пам'ять для класу невизначеного типу
- щоб отримати спільну поведінку в похідних класах
- для дослідження гіпотетичного класу
- для запобігання небажаній реалізації методу
- для резервування пам'яті для класу невизначеного типу
- лише під час експорту
- як під час компіляції, так і під час виконання
- під час компіляції
- під час виконання
- Це призведе до коду, який буде більш розширюваним і придатним для обслуговування
- Це дозволить отримати більш компактний продукт.
- Це пришвидшить початкову розробку.
- Це дозволить додати до свого резюме шаблон проєктування.
- визначення класів шляхом зосередження на тому, що важливо для мети
- приховування даних і деталей реалізації в межах класу
- зробити всі методи приватними
- використання слів для визначення класів
- Це передбачає інкапсуляцію.
- Об’єкт суперкласу має зв’язок IS-A зі своїм підкласом.
- Це передбачає віртуальний метод.
- Об'єкт підкласу має зв'язок IS-A зі своїм суперкласом або інтерфейсом
Q9. Вам потрібен метод з поведінкою, подібною до віртуального методу - очікується, що - він має бути перевизначений та не має тіла методу. Він просто має сигнатуру методу. Який метод слід використовувати?
- abstract метод
- внутрішній метод public
- внутрішній метод
- внутрішній метод protected
- Employee currentEmployee = Employee.Create();
- Employee currentEmployee = new Employee();
- Employee currentEmployee;
- Employee currentEmployee = Employee.New();
- за замовчуванням
- копіювання
- з параметрами
- Конструктори взагалі не мають return
- коли об’єкт створюється з класу з використанням ключового слова new
- коли клас визначено за допомогою ключового слова class
- кожного разу, коли є посилання на об’єкт
- коли об’єкт створюється з класу за допомогою ключового слова create
- коли об'єкт створюється з класу
- коли клас визначено за допомогою ключового слова class
- кожного разу, коли є посилання на об’єкт
- коли об’єкт створюється з класу за допомогою ключового слова create
- Об’єкт може бути доступний, оголошений і використаний локально в цій функції.
- Об’єкт має бути оголошено всередині будь-якої іншої функції.
- Об’єкт тимчасово доступний поза функцією.
- Об’єкт може викликати всіх інших членів класу будь-де в програмі.
- do та check
- catching та trying
- try та catch
- do та while
- Це полегшує збереження сутності.
- усі ці відповіді
- Це може зробити пошук сутності більш ефективним
- Це мінімізує зчеплення.
- Наслідування описує можливість створювати нові класи на основі існуючого класу.
- Наслідування означає, що група пов’язаних властивостей, методів та інших членів розглядається як єдина одиниця або об’єкт.
- Наслідування змушує клас мати єдину відповідальність лише від одного батька.
- Наслідування означає, що у вас ніколи не буде кількох класів, які можна використовувати як взаємозамінні, навіть якщо кожен клас реалізує ті самі властивості чи методи різними способами.
- багаторівневий
- ієрархічний і множинний
- ієрархічний
- багаторазовий
- Конструктор параметра за замовчуванням не еквівалентний конструктору за замовчуванням
- Конструктор за замовчуванням наслідується від батьківського класу
- Конструктор за замовчуванням можна викликати явно
- Конструктор за замовчуванням не може бути визначений програмістом
довідка "Конструктори можуть бути викликані явно або неявно. Метод неявного виклику конструктора також називається скороченим методом."
- Геттери та сетери можуть прискорити компіляцію.
- Геттери та сетери забезпечують інкапсуляцію поведінки.
- Геттери та сетери забезпечують точку налагодження, коли властивість змінюється під час виконання.
- Геттери та сетери дозволяють різні рівні доступу.
- Асоціація — це зв’язок, де всі об’єкти мають свій власний життєвий цикл і не мають власника.
- Асоціація — це процес, при якому елементи моделі взаємодіють для забезпечення поведінки більш високого рівня.
- Асоціація — це відношення "ціле/частина", де один об'єкт складається з одного або кількох інших об'єктів, кожен з яких є частиною цілого.
- Асоціація — це зв’язок, де всі об’єкти мають свій власний життєвий цикл, але існує власність, і дочірні об'єкти не можуть належати іншому батьківському об'єкту.
- User Stories коротші і менш детальні.
- User Stories точніші.
- User Stories більш детальні і структуровані.
- User Storise більш анекдотичні та особисті.
- Множинне
- Будь-який тип наслідування
- Многоступеневе
- Ієрархічне
Пояснення:
- Одинарне наслідування – це коли похідний клас успадковує властивості та поведінку від одного базового класу. Наприклад: Клас A → Клас B.
- Ієрархічне наслідування – це коли кілька похідних класів створюються з одного базового класу. Наприклад: Клас A → Клас B → Клас C.
- Множинне наслідування – це коли клас успадковується від кількох базових класів. Об'єкти, створені програмістами, матимуть об'єднані аспекти характеристик і функцій з кількох батьківських класів. Ці об'єкти дотримуються ієрархій своїх базових класів.
- Многоступеневе наслідування – це коли похідний клас успадковується від іншого похідного класу. Ця особливість об'єднує аспекти кількох класів і дотримується їх ієрархій.
- Гібридне наслідування – це неоднорідна функція використання множинного наслідування. Тут похідний клас створюється з комбінацій одиночного, ієрархічного та многоступеневого наслідувань. Це наслідування використовується для змішування різних типів наслідування, наприклад, коли одиночне наслідування змішується з множинним наслідуванням або ситуація, коли множинне наслідування змішується в межах однієї програми.
- об'єктно-орієнтованою мовою
- мовою, основаною на класах
- мовою, орієнтованою на процедури
- якщо класи підтримуються, поліморфізм також буде підтримуватися
Q25. Два класи поєднують private атрибути і надають public методи для доступу та маніпулювання цими даними. Де використовується абстракція?
- Абстракція використовує private специфікатор доступу для атрибутів.
- Абстракція використовує public методи для доступу та маніпулювання атрибутами.
- Абстракція використовує концепцію класу з обома, і атрибутами, і методами.
- Недостатньо інформації для визначення, де використовується абстракція.
Пояснення:
Абстракція в об'єктно-орієнтованому програмуванні означає приховування внутрішніх деталей реалізації і надання тільки необхідного інтерфейсу для взаємодії з об'єктом. В цьому випадку, публічні методи, які забезпечують доступ до приватних атрибутів, є прикладом абстракції, оскільки користувачі класу взаємодіють з даними через ці функції, не маючи доступу до деталей реалізації даних.
- Observer, State, Strategy, Template Method і Visitor.
- Composite, Visitor, State, Prototype і Singleton.
- Composite, Builder, Factory Method, Prototype і Singleton.
- Abstract Factory, Builder, Factory Method, Prototype і Singleton.
- лише один клас
- два класи
- стільки класів, скільки потрібно
- принаймні два класи
- на основний об'єкт викликаючої функції
- на об'єкт викликаючої функції та на об'єкт викликаної функції
- на копії об'єкта, яка створюється під час передачі
- лише в локальному контексті викликаної функції
- набір інструкцій, призначений для виконання операції що часто використовується в програмі і не повертає значень
- те саме, що функція та підпрограма
- набір змінних, які можуть змінюватися з часом
- функції, прив'язані до конкретних класів (або екземплярів) у об'єктно-орієнтованому програмуванні
Q30. Мобільний телефон складається з компонентів, таких як материнська плата, камера і датчики. Материнська плата представляє всі функції телефону, дисплей показує лише зображення, а телефон представлений як єдине ціле. Який з наведених компонентів має найвищий рівень абстракції?
- камера
- дисплей
- материнська плата
- мобільний телефон
Q31. Який клас має найвищий рівень абстракції у відносинах багаторівневого наслідування з п'ятьма рівнями?
- клас на третьому рівні
- клас на першому рівні
- Всі мають однаковий рівень абстракції.
- клас на другому рівні
- багаторівневе наслідування
- подвійне наслідування
- одиночне наслідування
- ієрархічне наслідування
- Дублювання використовує зайвий простір.
- Потрібно підтримувати всі дублікати.
- Дублювання може викликати занепокоєння щодо інтелектуальної власності.
- Дублювання легко приховати.
- Він викликається спочатку, коли створюється об'єкт, і викликається з кожним новим екземпляром об'єкта.
- Він викликається, коли об'єкт знищується, і тільки один раз.
- Він викликається спочатку, коли створюється об'єкт, і тільки один раз.
- Він створюється в момент, коли об'єкт відкидається.
static void Multiply(int num1, int num2) {};
static void Multiply(double num1, double num2, double num3) {};
static void Multiply(float num1, float num2) {};
- поліморфізм, тому що кожен метод може виконувати різне завдання
- перевизначення методу, тому що відображає однакову назву методу, різні або однакові параметри і той же тип поверненняtype
- перевантаження методу, тому що дозволяє створювати кілька методів з однією назвою, які відрізняються типом параметрів
- перевизначення методу, тому що відображає однакову назву методу, різні параметри і той же тип повернення
- для ініціалізації всіх членів зі статичним значенням
- для видалення статичних членів, коли вони не потрібні
- для ініціалізації статичних членів класу
- для очищення всіх ініціалізованих значень статичних членів
- Code Responsibility Collection картки - це інструмент для мозкового штурму, що використовується в проектуванні процедурного програмного забезпечення.
- Class Responsibility collaboration картки — це інструмент для мозкового штурму, що використовується в проектуванні об'єктно-орієнтованого програмного забезпечення.
- Code Responsibility Correction картки — це інструменти для відлагодження.
- Code Responsibility Correction картки — це інструменти для моделювання.
- Якщо один елемент агрегації звільняється, всі його елементи стають придатними для збору сміття.
- Якщо композиція знищується, вміст також знищується.
- Вміст композиції - це всі брати та сестри.
- Агрегація містить лише абстрактні класи.
- Якщо один елемент агрегації звільняється, всі його елементи стають придатними для збору сміття.
- Якщо композиція знищується, вміст також знищується.
- Вміст композиції є всіма братами і сестрами.
- Агрегація містить лише абстрактні класи.
- Може підвищити вразливість коду.
- Може зробити код небезпечнішим.
- Може знизити читаність коду.
- Може бути безпечнішим для кодування.
- Член-функції можуть бути визначені тільки всередині або поза тілом класу.
- Член-функції можуть бути оголошені друзями іншого класу.
- Член-функції не потрібно оголошувати всередині визначення класу.
- Усі член-функції повинні бути визначені.
- щоб захистити атрибути від небажаних змін
- щоб ефективніше делегувати відповідальність
- щоб заощаджувати пам'ять
- щоб розділити поведінку класу від загальнішого до більш специфічного
- назву
- стан
- колір
- об'єкт
- вбудована функція
- невизначена функція
- віртуальна функція
- функція-член класу
Q45. Які слова з наведеного списку є кандидатами на об'єкти: trumpet, clean, enrage, leaf, tree, collapse, active, і lively?
- leaf і tree
- clean, enrage і collapse
- clean, active і lively
- leaf, tree і trumpet
- Воно фокусується на об'єктах, які взаємодіють один з одним.
- Воно потрібне виключно для інтерфейсів.
- Воно потрібне виключно для класів.
- Воно створює один клас для всієї бізнес-логіки.
- Ні, абстрактні класи можуть використовуватися тільки в одно-рівневому наслідуванні, оскільки їх потрібно реалізувати негайно.
- Так, завжди
- Так, але тільки з одним абстрактним класом
- Ні, абстрактні класи не мають конструкторів.
- одно-рівневе
- багаторівневе
- ієрархічне
- множинне
- Абстракція полягає у приховуванні непотрібних деталей і показі тільки суттєвої інформації, тоді як інкапсуляція дозволяє програмісту реалізувати бажаний рівень абстракції.
- Абстракція та інкапсуляція по суті одне і те саме.
- Абстракція та інкапсуляція не пов'язані.
- Інкапсуляція полягає у виведенні наявної інформації, тоді як абстракція дозволяє програмісту реалізувати бажаний рівень інкапсуляції.
- abstract та public
- public та private
- this та final
- final та abstract
- Це адреса лише змінної — не методу об'єкта.
- Це поверхневий покажчик, що містить адресу об'єкта.
- Це фізична адреса об'єкта.
- Це адреса, де зберігаються змінні та методи об'єкта.
- Об'єкти можуть підтримувати внутрішній стан, який не є легко доступним для тестів.
- Якість фреймворків для модульного тестування функціональних мов є кращою.
- ООП сприяє повторному використанню коду, що означає, що ваші тести повинні враховувати більше випадків використання.
- Об'єктно-орієнтовані мови часто залежать від фреймворків, таких як Spring або Hibernate, що ускладнює їх тестування.
- Вона з'єднує учасників з випадками використання.
- Вона пов'язує учасників з ролями, які вони виконують у всіх випадках використання.
- Вона перераховує всіх учасників для кожного випадку використання.
- Вона зменшує кількість учасників, які необхідні.
- Поведінка описує динамічні властивості; атрибути є статичними.
- Атрибути описують стан; поведінка описує зміну.
- Атрибути застосовуються тільки до конкретного об'єкта; поведінка застосовується до інших зв'язаних об'єктів.
- Поведінка є векторними величинами; атрибути є скалярними величинами.
Q55. Принцип відкритості/закритості стверджує, що класи повинні бути відкритими для _ але закритими для _
- модифікації; дублювання
- рефакторингу; дублювання
- розширення; модифікації
- повторного використання; інкапсуляції
- щоб визначити метод, який має бути реалізований у похідному класі
- щоб визначити власну реалізацію успадкованого члена
- щоб визначити метод, який має бути реалізований тільки в суперкласі
- щоб визначити клас, який може бути успадкований
- Це унікальний конструктор для створення нового об'єкта як копії вже існуючого. Можливий лише один конструктор копіювання, який може бути визначений користувачем або системою.
- Це конструктор, який дублює себе на вимогу.
- Це загальний конструктор для запобігання створенню нового об'єкта як копії вже існуючого. Можливі кілька стандартних конструкторів, які можуть бути визначені користувачем або системою.
- Це конструктор, який дублює себе самостійно, базуючись на доступній пам'яті.
- Блок
catch
, який буде виконано, це той, що найкраще відповідає типу винятку, що виник. - Кілька блоків
catch
ніколи не можуть бути асоційовані з одним блокомtry
. - Кілька блоків
catch
є обов'язковими для кожного блокуtry
. - У випадку винятку всі блоки
catch
будуть виконані.
Q59. Є п'ять класів. Клас E успадковується від класу D, D від C, C від B, і B від A. Які конструктори класів будуть викликані першими, якщо створюється об'єкт класу E або D?
- A
- B
- C
- C і B
Q60. У вас є модулі, що залежать один від одного. Якщо ви змінюєте один модуль, потрібно внести зміни у залежні. Який термін використовується для опису цієї проблеми, і яке можливе рішення?
- Зв'язність. Рішенням є показати, що кожен модуль має певні обов'язки, і використовувати антизалежний шаблон проектування.
- Інкапсуляція. Рішенням є впровадження одного з принципів SOLID для забезпечення того, щоб модулі не інкапсулювали один в одного.
- Залежність. Рішенням є рефакторинг коду для досягнення слабкої зв'язності за допомогою інверсії контролю та впровадження залежностей.
- Залежність. Рішенням є впровадження поліморфізму та абстракції для зміни та вилучення залежних елементів модуля так, щоб він функціонував самостійно.
- Клас ресурсів
- Група методів
- Колекція об'єктів
- Список дітей
- virtual function
- inline function
- undefined function
- private function
- слабка зв'язність
- повторне використання коду
- ліниве ініціалізування
- абстракція даних
Q64. Чи потрібно повертати об'єкт, якщо він був переданий за посиланням у функцію, і чому або чому ні?
- Так, викликаюча функція повинна відобразити зміни.
- Ні, натомість потрібно використовувати глобальну змінну.
- Ні, зміни будуть автоматично відображені у викликаючій функції.
- Так, об'єкт повинен бути таким же у викликаючій функції.
- ...
- автомобіль:тойота
- качки:ставок
- пальці:ноги
- скала:камінь
Q67. Які твердження найкраще описують шаблони проектування Gang of Four(Банди чотирьох) під назвою Memento та Observer?
- Memento повідомляє кілька класів про зміни. Observer захоплює та відновлює внутрішній стан об'єкта.
- Memento відтерміновує точні кроки алгоритму для підкласу. Observer визначає нову операцію для класу без змін.
- Memento змінює поведінку об'єкта, коли його стан змінюється. Observer інкапсулює алгоритм всередині класу.
- Memento захоплює та відновлює внутрішній стан об'єкта. Observer повідомляє кілька класів про зміни.
Q68. Що вказує значення (0.5,0.5,0.5) у специфікації класової діаграми position: Coordinate = (0.5,0.5,0.5)?
- типове значення атрибута Coordinate
- розмір масиву position
- збільшення значення атрибута position
- типове значення атрибута position
- A
public class Car{
}
public class FlyingCars extends Car{
public void fly(){}
}
public class Tesla FlyingCar{}
public class Honda Car{}
- B
public class Car{
public void fly(){}
}
public class Tesla extends Car{}
public class Honda extends Car{}
- C
public class Car{
public void fly(){}
}
public class Tesla Car{}
public class Honda Car{}
- D
public class Car{
}
public class FlyingCars extends Car{
public void fly(){}
}
public class Tesla extends FlyingCar{}
public class Honda extends Car{}
- Аргумент може мати багато значень, тоді як параметр може мати лише одне значення.
- Аргумент — це змінна, яка використовується для значень введення в методі. Параметр — це конкретне значення, яке передається в метод.
- Параметр — це змінна у декларації функції. Аргумент — це значення цієї змінної, яке передається функції.
- Параметри та аргументи — це одне і те саме.
- Захищений (Protected)
- Приватний (Private)
- Глобальний (Global)
- Залежить від специфікатора доступу та використаного наслідування
Пояснення: Це залежить від специфікатора доступу та типу наслідування, яке використовується з класом, оскільки якщо клас наслідується, то вкладений клас може бути використаний і підкласом, якщо він не є приватним.
- Колекція (Collection)
- Змінна (Variable)
- Клас (Class)
- Процедура (Procedure)
Q73. Припустимо, що використовується одиночне наслідування з класами A та B, де A є базовим класом. Потім припустимо, що є класи C, D та E, де C є базовим класом, а D наслідується від C, а E наслідується від D. Клас C робиться успадкованим від класу B. Який тип наслідування відображено?
- Многоступеневе (Multilevel)
- Гібридне (Hybrid)
- Одиночне (Single level)
- Множинне (Multiple)
- Усі ці відповіді
- Додатки розбиваються на частини
- Частини визначені з мінімальним перетином
- Кожна частина відповідає за окрему проблему
- Завжди виконувати блок коду
finally
, коли блокtry
виключено - Виконувати код, коли виключення не сталося
- Виконувати блок, якщо сталося виключення
- Виконувати код, коли цього потребує збірка сміття
- C#
- Java
- C
- Python
- Звільняти ресурси, які більше не потрібні
- Видаляти ім'я змінної
- Скидувати значення атрибута
- Зберігати місце, навіть після того, як об'єкт більше не використовується
- Захищений клас (Protected class)
- Базовий клас (Base class)
- Анонімний клас (Anonymous class)
- Абстрактний клас (Abstract class)
- Композиція — це акт одного об'єкта, який передає іншому об'єкту операцію, що виконується від імені початкового об'єкта.
- Композиція — це відношення частина/ціле, де об'єкт складається з одного або кількох інших об'єктів, кожен з яких є частиною цілого.
- Композиція — це зв'язок, при якому асоціація класу/імені не здійснюється до того, як об'єкт, призначений ім'ям, створюється під час виконання.
- Композиція — це процес збору класів, які надають набір послуг для певної області.
- Перевантаження (Overloading)
- Наслідування (Inheritance)
- Абстракцію (Abstraction)
- Перекриття (Overriding)
- Батьків
- Чистих віртуальних функцій
- Атрибутів
- Мети
- Може бути складно визначити змінні, які мають неправильний тип
- Динамічні змінні можуть приймати лише обмежені значення
- Для динамічних змінних фіксоване зберігання
- Статичні змінні більш гнучкі, ніж динамічні
- Раннє зв'язування — це коли змінна отримує значення при створенні області видимості. Пізнє зв'язування — це коли змінна отримує значення після виходу з області видимості
- Раннє зв'язування — це коли змінна отримує значення при запуску програми. Пізнє зв'язування — це коли змінна отримує значення після того, як програма запущена
- Немає різниці. У обох випадках змінні отримують значення, коли програма завершила запуск і працює
- Раннє зв'язування — це коли змінна отримує своє значення на етапі компіляції. Пізнє зв'язування — це коли змінна отримує значення під час виконання
- Інтерфейси можуть містити код або дані. Абстрактні класи не містять код або дані. Клас може успадковуватися від декількох абстрактних класів, але може реалізувати лише один інтерфейс.
- Інтерфейси можуть містити код або дані. Абстрактні класи не містять код або дані. Клас може успадковуватися тільки від одного абстрактного класу, але може реалізувати необмежену кількість інтерфейсів.
- Абстрактні класи можуть містити код або дані. Інтерфейси не містять код або дані. Клас може успадковуватися тільки від одного абстрактного класу, але може реалізувати необмежену кількість інтерфейсів.
- Абстрактні класи можуть містити код або дані. Інтерфейси не містять код або дані. Клас може успадковуватися від декількох абстрактних класів, але може реалізувати тільки один інтерфейс.
Оскільки тут не вказана конкретна мова програмування, розглянемо всі мови.
- Посилання на підклас (reference to subclass) // Посилання на підклас ніколи не є необхідними, оскільки ви можете просто ініціалізувати підклас і використовувати його об'єкт.
- Посилання на базовий клас (reference to base class) // Посилання на базовий клас не потрібні в Java, JavaScript і Python
- Посилання на this (reference to this pointer) // Хоча Python і JavaScript можуть вимагати передачі this або self у конструкторі, це не передається у конструктор Java.
- Нічого (none) // Вище зазначені варіанти неправильні, тому "нічого" є правильним.
- маніпуляція, інкапсуляція, успадкування і інверсія залежностей
- інверсія залежностей, принцип відкритості/закритості, інкапсуляція і успадкування
- розділення інтерфейсів, абстракція, інверсія залежностей і успадкування
- абстракція, інкапсуляція, наслідування і поліморфізм
Q87. З принципів SOLID об'єктно-орієнтованого програмування, яке твердження найкраще описує принцип заміщення Ліскова?
- Клас повинен мати тільки одну відповідальність — тобто тільки зміни в одній частині специфікації програмного забезпечення повинні впливати на специфікацію класу.
- Програмні сутності повинні бути відкриті для розширення, але закриті для модифікації.
- Багато специфічних для клієнта інтерфейсів краще, ніж один універсальний інтерфейс.
- Об'єкти в програмі повинні бути замінювані екземплярами своїх підтипів без зміни правильності програми.
Q88. Окрім відповідальностей, що ще повинно бути вказано на картках класів-відповідальностей-співпраці (CRC)?
- Яка мова програмування буде використана.
- Програміст, відповідальний за реалізацію.
- Взаємодіючі класи.
- Атрибути.
- makeResult()
- questionScore()
- calculateScore()
- getAnswers()
- кіт : кошеня
- колір : червоний
- планета : місяць
- вантажівка : вікно
- Перевантаження конструкторів (overloading constructors)
- Перевантаження членів функцій (overloading member functions)
- Статичні члени функцій (static member functions)
- Перевантаження попередньо визначених операторів (overloading predefined operator)
- тільки 10 рівнів наслідування
- стільки рівнів наслідування, скільки потрібно протягом 10 хвилин
- стільки рівнів наслідування, скільки потрібно
- лише стільки рівнів, скільки дозволяє пам'ять, розділена на швидкість процесора
- метод, який, як ви очікуєте, може бути переписаний у похідних класах
- метод, від якого не очікується, що він буде переписаний у похідних класах
- приватний метод, від якого не очікується, що він буде переписаний у публічних похідних класах
- метод, який існує тимчасово — після використання він перестає використовуватися будь-яким викликом
- Інкапсуляція (Encapsulation)
- Компіляція (Compilation)
- Успадкування (Inheritance)
- Поліморфізм (Polymorphism)
- Поведінка описує динамічні властивості; атрибути є статичними.
- Атрибути описують стан; поведінки описують зміну.
- Атрибути застосовуються тільки до конкретного об'єкта; поведінка застосовується до інших пов'язаних об'єктів.
- Поведінки є векторними величинами; атрибути є скалярними.
- Слід збільшити зв'язок, щоб покращити залежності між класами.
- Слід обмежити зв'язок, щоб зменшити залежності між класами.
- Слід збільшити зв'язок, щоб члени класу відповідали меті класу.
- Слід обмежити зв'язок, щоб члени класу відповідали меті.
- Класи-друзі підтримують базовий клас за потреби.
- Клас-друг може отримувати доступ до приватних і захищених членів класу, в якому він оголошений як друг.
- Класи-друзі не мають реалізації.
- Клас-друг може отримувати доступ лише до захищених членів класу, до якого він є другом.
-
class employee{ }; class stream{ }; class topper{ };
-
class employee{int rating;}; class stream:public employee{ };
-
class employee{int rating;}; class stream{int total;}; class topper: employee, stream{ };
-
class employeef{int rating};}: class stream{ }: class topper: public employee{ }:
- клас, який не має більше одного батька.
- клас, який не є похідним від іншого похідного об'єкта.
- не подвоєння однорівневого наслідування.
- класи, похідні від інших похідних класів.
- Ні, не можна.
- Так, якщо їх конструктори різні.
- Так, якщо їх методи різні.
- Так, якщо вони знаходяться в різних просторах імен (namespaces).
- значенням або посиланням, в залежності від мови програмування
- значенням
- значенням або посиланням, в залежності від програми
- посиланням
Q102. Якщо мова реалізує лише передачу параметрів за значенням у функції, чи можуть об'єкти, передані як параметри, бути встановлені на нові екземпляри всередині функції і їх нове значення повернутися до виклику?
- Так, але тільки якщо це посилання, а не примітивний клас.
- Так, оскільки значення є посиланням, навіть якщо воно передається за значенням, це можливо.
- Ні, ви отримаєте помилку компіляції.
- Ні, буде ініціалізовано локальну копію, яка буде втрачена, як тільки вона вийде з області видимості.
- визначення класів, зосереджуючись на тому, що важливо для мети
- визначення даних і відповідних методів разом в одному класі
- зробити всі методи приватними
- використання слів для визначення класів
- функція, що асоціюється з даними та поведінкою
- те саме, що і функція та підпрограма
- набір змінних, що можуть змінюватися з часом
- набір інструкцій, розроблений для виконання часто використовуваної операції в програмі який не повертає значень
-
A public class Car{ } public class FlyingCars extends Car{ public void fly(){} } public class Tesla FlyingCar{} public class Honda Car{}
-
B public class Car{ public void fly(){} } public class Tesla extends Car{} public class Honda extends Car{}
-
C public class Car{ public void fly(){} } public class Tesla Car{} public class Honda Car{}
-
D public class Car{ } public class FlyingCars extends Car{ public void fly(){} } public class Tesla extends FlyingCar{} public class Honda extends Car{}
- Клас ресурсів
- Група методів
- Колекція об'єктів
- Список дітей
- слабке зв'язування (loose coupling)
- повторне використання коду
- лінива ініціалізація
- абстракція даних
- Перевантаження конструкторів (overloading constructors)
- Перевантаження членів функцій (overloading member functions)
- Статичні члени функцій (static member functions)
- Перевантаження попередньо визначених операторів (overloading predefined operator)
- Захищений клас (Protected class)
- Базовий клас (Base class)
- Анонімний клас (Anonymous class)
- Абстрактний клас (Abstract class)
Q110. З принципів SOLID об'єктно-орієнтованого програмування, яке твердження найкраще описує принцип заміщення Ліскова?
- Клас повинен мати тільки одну відповідальність — тобто тільки зміни в одній частині специфікації програмного забезпечення повинні впливати на специфікацію класу.
- Програмні сутності повинні бути відкриті для розширення, але закриті для модифікації.
- Багато специфічних для клієнта інтерфейсів краще, ніж один універсальний інтерфейс.
- Об'єкти в програмі повинні бути замінювані екземплярами своїх підтипів без зміни правильності програми.
- Observer, State, Strategy, Template Method, і Visitor.
- Composite, Visitor, State, Prototype, і Singleton.
- Composite, Builder, Factory Method, Prototype, і Singleton.
- Abstract Factory, Builder, Factory Method, Prototype, і Singleton.
- Інтерфейси можуть містити код або дані. Абстрактні класи не містять коду або даних. Клас може успадковувати більше одного абстрактного класу, але може реалізувати лише один інтерфейс.
- Інтерфейси можуть містити код або дані. Абстрактні класи не містять коду або даних. Клас може успадковувати лише один абстрактний клас, але може реалізувати необмежену кількість інтерфейсів.
- Абстрактні класи можуть містити код або дані. Інтерфейси не містять коду або даних. Клас може успадковувати лише один абстрактний клас, але може реалізувати необмежену кількість інтерфейсів.
- Абстрактні класи можуть містити код або дані. Інтерфейси не містять коду або даних. Клас може успадковувати більше одного абстрактного класу, але може реалізувати лише один інтерфейс.
- кіт : кошеня
- колір : червоний
- планета : місяць
- вантажівка : вікно
- слабка зв'язаність
- повторне використання коду
- лінива ініціалізація
- абстракція даних
- Клас ресурсів
- Група методів
- Колекція об'єктів
- Список дітей
- віртуальна функція
- вбудована функція
- не визначена функція
- приватна функція
- слабка зв'язаність
- повторне використання коду
- лінива ініціалізація
- абстракція даних
Q118. Чи потрібно повернути об'єкт, якщо він був переданий за посиланням у функцію, і чому або чому ні?
- Так, функція виклику повинна відобразити зміни.
- Ні, слід використовувати глобальну змінну.
- Ні, зміни автоматично відобразяться у функції виклику.
- Так, об'єкт повинен бути таким же у функції виклику.
Q119. З принципів SOLID об'єктно-орієнтованого програмування, яке твердження найкраще описує принцип заміщення Ліскова?
- Клас повинен мати лише одну відповідальність — тобто тільки зміни в одній частині специфікації програмного забезпечення повинні впливати на специфікацію класу.
- Програмні сутності повинні бути відкриті для розширення, але закриті для модифікації.
- Багато специфічних для клієнтів інтерфейсів краще ніж один універсальний інтерфейс.
- об'єкти в програмі повинні бути замінювані екземплярами їх підтипів без порушення коректності програми.
Q120. Окрім відповідальностей, що ще повинно бути вказано на картках Class-responsability-collaboration (CRC)?
- Яка мова програмування буде використана.
- Програміст, відповідальний за реалізацію.
- Взаємодіючі класи.
- Атрибути.
- makeResult()
- questionScore()
- calculateScore()
- getAnswers()
- Андреа Ферро
- Адель Голдберг
- Алан Кей
- Денис Річі