Q2. Для якого випадку буде доцільним використання статичного атрибута?
кількість людей у кожному будинку в невеликому мікрорайоні
розмір ділянки для кожного будинку в невеликому районі
колір кожного будинку в маленькому районі
погодні умови для кожного будинку в невеликому районі
Q3. 1 Навіщо створювати абстрактний клас, якщо він не може мати жодних реальних екземплярів?
щоб уникнути надлишкового кодування у дітей
дослідити гіпотетичний клас
щоб запобігти використанню небажаного методу
щоб зарезервувати пам’ять для класу невизначеного типу
Q4. 2 Навіщо створювати абстрактний клас, якщо він не може мати жодних реальних екземплярів?
щоб отримати спільну поведінку в похідних класах
для дослідження гіпотетичного класу
для запобігання небажаній реалізації методу
для резервування пам’яті для класу невизначеного типу
Q5. Коли відбувається статичне зв’язування?
лише під час експорту
як під час компіляції, так і під час виконання
під час компіляції
під час виконання
Q6. Що є найкращою причиною для використання шаблону проектування?
Це призведе до коду, який буде більш розширюваним і придатним для обслуговування
Це дозволить отримати більш компактний продукт.
Це пришвидшить початкову розробку.
Це дозволить додати до свого резюме шаблон проєктування.
Q7. Що таке інкапсуляція?
визначення класів шляхом зосередження на тому, що важливо для мети
приховування даних і деталей реалізації в межах класу
зробити всі методи приватними
використання слів для визначення класів
Q8. Що таке відносини IS-A?
Це передбачає інкапсуляцію.
Об’єкт суперкласу має зв’язок IS-A зі своїм підкласом.
Це передбачає віртуальний метод.
Об’єкт підкласу має зв’язок IS-A зі своїм суперкласом або інтерфейсом
Q9. Вам потрібен метод з поведінкою, подібною до віртуального методу - очікується, що - він має бути перевизначений та не має тіла методу. Він просто має сигнатуру методу. Який метод слід використовувати?
abstract метод
внутрішній метод public
внутрішній метод
внутрішній метод protected
Q10. Який код створює новий об’єкт з класу Employee?
Employee currentEmployee = Employee.Create();
Employee currentEmployee = new Employee();
Employee currentEmployee;
Employee currentEmployee = Employee.New();
Q11. Який тип конструктора не може мати return?
за замовчуванням
копіювання
з параметрами
Конструктори взагалі не мають return
Q12. 1 Коли виконується конструктор?
коли об’єкт створюється з класу з використанням ключового слова new
коли клас визначено за допомогою ключового слова class
кожного разу, коли є посилання на об’єкт
коли об’єкт створюється з класу за допомогою ключового слова create
Q13. 2 Коли виконується конструктор?
коли об’єкт створюється з класу
коли клас визначено за допомогою ключового слова class
кожного разу, коли є посилання на об’єкт
коли об’єкт створюється з класу за допомогою ключового слова create
Q14. Якщо локальний клас визначено у функції, що вірно для об’єкта цього класу?
Об’єкт може бути доступний, оголошений і використаний локально в цій функції.
Об’єкт має бути оголошено всередині будь-якої іншої функції.
Об’єкт тимчасово доступний поза функцією.
Об’єкт може викликати всіх інших членів класу будь-де в програмі.
Q15. Які два блоки використовуються для обробки та перевірки помилок?
do та check
catching та trying
try та catch
do та while
Q16. Навіщо реалізовувати композицію, використовуючи ідентифікатор замість посилання?
Це полегшує збереження сутності.
усі ці відповіді
Це може зробити пошук сутності більш ефективним
Це мінімізує зчеплення.
Q17. Який вислів найкраще описує метод наслідування в ООП?
Наслідування описує можливість створювати нові класи на основі існуючого класу.
Наслідування означає, що група пов’язаних властивостей, методів та інших членів розглядається як єдина одиниця або об’єкт.
Наслідування змушує клас мати єдину відповідальність лише від одного батька.
Наслідування означає, що у вас ніколи не буде кількох класів, які можна використовувати як взаємозамінні, навіть якщо кожен клас реалізує ті самі властивості чи методи різними способами.
Q18. Який тип наслідування, якщо воно виконується безперервно, подібний до деревовидної структури?
багаторівневий
ієрархічний і множинний
ієрархічний
багаторазовий
Q19. Яке твердження вірне?
Конструктор параметра за замовчуванням не еквівалентний конструктору за замовчуванням
Конструктор за замовчуванням наслідується від батьківського класу
Конструктор за замовчуванням можна викликати явно
Конструктор за замовчуванням не може бути визначений програмістом
довідка “Конструктори можуть бути викликані явно або неявно. Метод неявного виклику конструктора також називається скороченим методом.”
Q20. Що з наведеного НЕ є перевагою використання геттерів і сеттерів?
Геттери та сетери можуть прискорити компіляцію.
Геттери та сетери забезпечують інкапсуляцію поведінки.
Геттери та сетери забезпечують точку налагодження, коли властивість змінюється під час виконання.
Геттери та сетери дозволяють різні рівні доступу.
Q21. У контексті ООП, що таке асоціація?
Асоціація — це зв’язок, де всі об’єкти мають свій власний життєвий цикл і не мають власника.
Асоціація — це процес, при якому елементи моделі взаємодіють для забезпечення поведінки більш високого рівня.
Асоціація — це відношення “ціле/частина”, де один об’єкт складається з одного або кількох інших об’єктів, кожен з яких є частиною цілого.
Асоціація — це зв’язок, де всі об’єкти мають свій власний життєвий цикл, але існує власність, і дочірні об’єкти не можуть належати іншому батьківському об’єкту.
Q22. Чим User Stories відрізняються від Use Cases?
User Stories коротші і менш детальні.
User Stories точніші.
User Stories більш детальні і структуровані.
User Storise більш анекдотичні та особисті.
Q23. Який тип наслідування слід використовувати, щоб результат був гібридним?
Множинне
Будь-який тип наслідування
Многоступеневе
Ієрархічне
Пояснення:
Одинарне наслідування – це коли похідний клас успадковує властивості та поведінку від одного базового класу. Наприклад: Клас A → Клас B.
Ієрархічне наслідування – це коли кілька похідних класів створюються з одного базового класу. Наприклад: Клас A → Клас B → Клас C.
Множинне наслідування – це коли клас успадковується від кількох базових класів. Об’єкти, створені програмістами, матимуть об’єднані аспекти характеристик і функцій з кількох батьківських класів. Ці об’єкти дотримуються ієрархій своїх базових класів.
Многоступеневе наслідування – це коли похідний клас успадковується від іншого похідного класу. Ця особливість об’єднує аспекти кількох класів і дотримується їх ієрархій.
Гібридне наслідування – це неоднорідна функція використання множинного наслідування. Тут похідний клас створюється з комбінацій одиночного, ієрархічного та многоступеневого наслідувань. Це наслідування використовується для змішування різних типів наслідування, наприклад, коли одиночне наслідування змішується з множинним наслідуванням або ситуація, коли множинне наслідування змішується в межах однієї програми.
Q25. Два класи поєднують private атрибути і надають public методи для доступу та маніпулювання цими даними. Де використовується абстракція?
Абстракція використовує private специфікатор доступу для атрибутів.
Абстракція використовує public методи для доступу та маніпулювання атрибутами.
Абстракція використовує концепцію класу з обома, і атрибутами, і методами.
Недостатньо інформації для визначення, де використовується абстракція.
Пояснення:
Абстракція в об’єктно-орієнтованому програмуванні означає приховування внутрішніх деталей реалізації і надання тільки необхідного інтерфейсу для взаємодії з об’єктом. В цьому випадку, публічні методи, які забезпечують доступ до приватних атрибутів, є прикладом абстракції, оскільки користувачі класу взаємодіють з даними через ці функції, не маючи доступу до деталей реалізації даних.
Q26. Які п’ять патернів створення з книги “Банда чотирьох(Gang of Four)”?
Observer, State, Strategy, Template Method і Visitor.
Composite, Visitor, State, Prototype і Singleton.
Composite, Builder, Factory Method, Prototype і Singleton.
Abstract Factory, Builder, Factory Method, Prototype і Singleton.
Q27. У багаторівневому наслідуванні один клас наслідує скільки класів?
лише один клас
два класи
стільки класів, скільки потрібно
принаймні два класи
Q28. Якщо об’єкт передається за посиланням, зміни, зроблені у функції, розповсюджуються _
на основний об’єкт викликаючої функції
на об’єкт викликаючої функції та на об’єкт викликаної функції
на копії об’єкта, яка створюється під час передачі
лише в локальному контексті викликаної функції
Q29. Що таке метод?
набір інструкцій, призначений для виконання операції що часто використовується в програмі і не повертає значень
те саме, що функція та підпрограма
набір змінних, які можуть змінюватися з часом
функції, прив’язані до конкретних класів (або екземплярів) у об’єктно-орієнтованому програмуванні
Q30. Мобільний телефон складається з компонентів, таких як материнська плата, камера і датчики. Материнська плата представляє всі функції телефону, дисплей показує лише зображення, а телефон представлений як єдине ціле. Який з наведених компонентів має найвищий рівень абстракції?
камера
дисплей
материнська плата
мобільний телефон
Q31. Який клас має найвищий рівень абстракції у відносинах багаторівневого наслідування з п’ятьма рівнями?
клас на третьому рівні
клас на першому рівні
Всі мають однаковий рівень абстракції.
клас на другому рівні
Q32. Який з наступних варіантів НЕ є базовим типом наслідування?
багаторівневе наслідування
подвійне наслідування
одиночне наслідування
ієрархічне наслідування
Q33. Чому дублювання коду є таким підступним?
Дублювання використовує зайвий простір.
Потрібно підтримувати всі дублікати.
Дублювання може викликати занепокоєння щодо інтелектуальної власності.
Дублювання легко приховати.
Q34. Коли і як часто викликається статичний конструктор?
Він викликається спочатку, коли створюється об’єкт, і викликається з кожним новим екземпляром об’єкта.
Він викликається, коли об’єкт знищується, і тільки один раз.
Він викликається спочатку, коли створюється об’єкт, і тільки один раз.
Він створюється в момент, коли об’єкт відкидається.
поліморфізм, тому що кожен метод може виконувати різне завдання
перевизначення методу, тому що відображає однакову назву методу, різні або однакові параметри і той же тип поверненняtype
перевантаження методу, тому що дозволяє створювати кілька методів з однією назвою, які відрізняються типом параметрів
перевизначення методу, тому що відображає однакову назву методу, різні параметри і той же тип повернення
Q36. Яка мета використання статичного конструктора?
для ініціалізації всіх членів зі статичним значенням
для видалення статичних членів, коли вони не потрібні
для ініціалізації статичних членів класу
для очищення всіх ініціалізованих значень статичних членів
Q37. Що таке картки CRC?
Code Responsibility Collection картки - це інструмент для мозкового штурму, що використовується в проектуванні процедурного програмного забезпечення.
Class Responsibility collaboration картки — це інструмент для мозкового штурму, що використовується в проектуванні об’єктно-орієнтованого програмного забезпечення.
Code Responsibility Correction картки — це інструменти для відлагодження.
Code Responsibility Correction картки — це інструменти для моделювання.
Q38. Чим вміст композиції відрізняється від вмісту агрегації?
Якщо один елемент агрегації звільняється, всі його елементи стають придатними для збору сміття.
Якщо композиція знищується, вміст також знищується.
Вміст композиції - це всі брати та сестри.
Агрегація містить лише абстрактні класи.
Q39. Яке з наступних тверджень про композиції та агрегації є правильним?
Якщо один елемент агрегації звільняється, всі його елементи стають придатними для збору сміття.
Якщо композиція знищується, вміст також знищується.
Вміст композиції є всіма братами і сестрами.
Агрегація містить лише абстрактні класи.
Q40. Який результат використання більшого рівня абстракції?
Може підвищити вразливість коду.
Може зробити код небезпечнішим.
Може знизити читаність коду.
Може бути безпечнішим для кодування.
Q41. Що є неправильним щодо член-функцій класу?
Член-функції можуть бути визначені тільки всередині або поза тілом класу.
Член-функції можуть бути оголошені друзями іншого класу.
Член-функції не потрібно оголошувати всередині визначення класу.
Усі член-функції повинні бути визначені.
Q42. Чому при створенні нового класу використовується наслідування?
щоб захистити атрибути від небажаних змін
щоб ефективніше делегувати відповідальність
щоб заощаджувати пам’ять
щоб розділити поведінку класу від загальнішого до більш специфічного
Q43. Окрім атрибутів і поведінки, яку якість повинен мати клас?
назву
стан
колір
об’єкт
Q44. Який тип функції серед наведених демонструє поліморфізм?
вбудована функція
невизначена функція
віртуальна функція
функція-член класу
Q45. Які слова з наведеного списку є кандидатами на об’єкти: trumpet, clean, enrage, leaf, tree, collapse, active, і lively?
leaf і tree
clean, enrage і collapse
clean, active і lively
leaf, tree і trumpet
Q46. Що найкраще описує те, що робить об’єктно-орієнтоване програмування?
Воно фокусується на об’єктах, які взаємодіють один з одним.
Воно потрібне виключно для інтерфейсів.
Воно потрібне виключно для класів.
Воно створює один клас для всієї бізнес-логіки.
Q47. Чи можуть абстрактні класи використовуватися в багаторівневому наслідуванні?
Ні, абстрактні класи можуть використовуватися тільки в одно-рівневому наслідуванні, оскільки їх потрібно реалізувати негайно.
Так, завжди
Так, але тільки з одним абстрактним класом
Ні, абстрактні класи не мають конструкторів.
Q48. Який тип наслідування може призвести до проблеми діаманта?
одно-рівневе
багаторівневе
ієрархічне
множинне
Q49. Який взаємозв’язок між абстракцією та інкапсуляцією?
Абстракція полягає у приховуванні непотрібних деталей і показі тільки суттєвої інформації, тоді як інкапсуляція дозволяє програмісту реалізувати бажаний рівень абстракції.
Абстракція та інкапсуляція по суті одне і те саме.
Абстракція та інкапсуляція не пов’язані.
Інкапсуляція полягає у виведенні наявної інформації, тоді як абстракція дозволяє програмісту реалізувати бажаний рівень інкапсуляції.
Q50. Які з цих ключових слів є специфікаторами доступу?
abstract та public
public та private
this та final
final та abstract
Q51. Що таке посилання на об’єкт?
Це адреса лише змінної — не методу об’єкта.
Це поверхневий покажчик, що містить адресу об’єкта.
Це фізична адреса об’єкта.
Це адреса, де зберігаються змінні та методи об’єкта.
Q52. Чому модульне тестування є складнішим в ООП порівняно з функціональним програмуванням?
Об’єкти можуть підтримувати внутрішній стан, який не є легко доступним для тестів.
Якість фреймворків для модульного тестування функціональних мов є кращою.
ООП сприяє повторному використанню коду, що означає, що ваші тести повинні враховувати більше випадків використання.
Об’єктно-орієнтовані мови часто залежать від фреймворків, таких як Spring або Hibernate, що ускладнює їх тестування.
Q53. Яка функція діаграми випадків використання?
Вона з’єднує учасників з випадками використання.
Вона пов’язує учасників з ролями, які вони виконують у всіх випадках використання.
Вона перераховує всіх учасників для кожного випадку використання.
Вона зменшує кількість учасників, які необхідні.
Q54. Чим відрізняються поведінка об’єкта та атрибути?
Поведінка описує динамічні властивості; атрибути є статичними.
Атрибути описують стан; поведінка описує зміну.
Атрибути застосовуються тільки до конкретного об’єкта; поведінка застосовується до інших зв’язаних об’єктів.
Поведінка є векторними величинами; атрибути є скалярними величинами.
Q55. Принцип відкритості/закритості стверджує, що класи повинні бути відкритими для _ але закритими для _
модифікації; дублювання
рефакторингу; дублювання
розширення; модифікації
повторного використання; інкапсуляції
Q56. Чому можливо перевизначити метод базового класу?
щоб визначити метод, який має бути реалізований у похідному класі
щоб визначити власну реалізацію успадкованого члена
щоб визначити метод, який має бути реалізований тільки в суперкласі
щоб визначити клас, який може бути успадкований
Q57. Що таке конструктор копіювання?
Це унікальний конструктор для створення нового об’єкта як копії вже існуючого. Можливий лише один конструктор копіювання, який може бути визначений користувачем або системою.
Це конструктор, який дублює себе на вимогу.
Це загальний конструктор для запобігання створенню нового об’єкта як копії вже існуючого. Можливі кілька стандартних конструкторів, які можуть бути визначені користувачем або системою.
Це конструктор, який дублює себе самостійно, базуючись на доступній пам’яті.
Q58. Який вираз найбільш точно описує блок catch?
Блок catch, який буде виконано, це той, що найкраще відповідає типу винятку, що виник.
Кілька блоків catch ніколи не можуть бути асоційовані з одним блоком try.
Кілька блоків catch є обов’язковими для кожного блоку try.
У випадку винятку всі блоки catch будуть виконані.
Q59. Є п’ять класів. Клас E успадковується від класу D, D від C, C від B, і B від A. Які конструктори класів будуть викликані першими, якщо створюється об’єкт класу E або D?
A
B
C
C і B
Q60. У вас є модулі, що залежать один від одного. Якщо ви змінюєте один модуль, потрібно внести зміни у залежні. Який термін використовується для опису цієї проблеми, і яке можливе рішення?
Зв’язність. Рішенням є показати, що кожен модуль має певні обов’язки, і використовувати антизалежний шаблон проектування.
Інкапсуляція. Рішенням є впровадження одного з принципів SOLID для забезпечення того, щоб модулі не інкапсулювали один в одного.
Залежність. Рішенням є рефакторинг коду для досягнення слабкої зв’язності за допомогою інверсії контролю та впровадження залежностей.
Залежність. Рішенням є впровадження поліморфізму та абстракції для зміни та вилучення залежних елементів модуля так, щоб він функціонував самостійно.
Q61. _ описує агрегацію
Клас ресурсів
Група методів
Колекція об’єктів
Список дітей
Q62. Який тип функції можна використовувати для поліморфізму?
virtual function
inline function
undefined function
private function
Q63. Яка перевага використання впровадження залежностей?
слабка зв’язність
повторне використання коду
ліниве ініціалізування
абстракція даних
Q64. Чи потрібно повертати об’єкт, якщо він був переданий за посиланням у функцію, і чому або чому ні?
Так, викликаюча функція повинна відобразити зміни.
Ні, натомість потрібно використовувати глобальну змінну.
Ні, зміни будуть автоматично відображені у викликаючій функції.
Так, об’єкт повинен бути таким же у викликаючій функції.
Q65. Чому потрібне наслідування?
…
Q66. Який найкращий приклад відношення суперкласу і підкласу?
автомобіль:тойота
качки:ставок
пальці:ноги
скала:камінь
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
Q69. Який найбільш точний приклад принципу заміщення Ліскова?
Аргумент може мати багато значень, тоді як параметр може мати лише одне значення.
Аргумент — це змінна, яка використовується для значень введення в методі. Параметр — це конкретне значення, яке передається в метод.
Параметр — це змінна у декларації функції. Аргумент — це значення цієї змінної, яке передається функції.
Параметри та аргументи — це одне і те саме.
Q71. Який обсяг видимості має клас, вкладений всередину іншого класу?
Захищений (Protected)
Приватний (Private)
Глобальний (Global)
Залежить від специфікатора доступу та використаного наслідування
Пояснення: Це залежить від специфікатора доступу та типу наслідування, яке використовується з класом, оскільки якщо клас наслідується, то вкладений клас може бути використаний і підкласом, якщо він не є приватним.
Q72. Методи та атрибути, які визначають об’єкт, є своєрідним шаблоном, як його назва?
Колекція (Collection)
Змінна (Variable)
Клас (Class)
Процедура (Procedure)
Q73. Припустимо, що використовується одиночне наслідування з класами A та B, де A є базовим класом. Потім припустимо, що є класи C, D та E, де C є базовим класом, а D наслідується від C, а E наслідується від D. Клас C робиться успадкованим від класу B. Який тип наслідування відображено?
Многоступеневе (Multilevel)
Гібридне (Hybrid)
Одиночне (Single level)
Множинне (Multiple)
Q74. Яка основна ідея розділення проблем?
Усі ці відповіді
Додатки розбиваються на частини
Частини визначені з мінімальним перетином
Кожна частина відповідає за окрему проблему
Q75. Яка мета блоку finally?
Завжди виконувати блок коду finally, коли блок try виключено
Виконувати код, коли виключення не сталося
Виконувати блок, якщо сталося виключення
Виконувати код, коли цього потребує збірка сміття
Q76. Який з варіантів не є мовою ООП?
C#
Java
C
Python
Q77. Яка функція фіналізатора або деструктора?
Звільняти ресурси, які більше не потрібні
Видаляти ім’я змінної
Скидувати значення атрибута
Зберігати місце, навіть після того, як об’єкт більше не використовується
Q78. Який тип класу не можна створити?
Захищений клас (Protected class)
Базовий клас (Base class)
Анонімний клас (Anonymous class)
Абстрактний клас (Abstract class)
Q79. У контексті ООП, що таке композиція?
Композиція — це акт одного об’єкта, який передає іншому об’єкту операцію, що виконується від імені початкового об’єкта.
Композиція — це відношення частина/ціле, де об’єкт складається з одного або кількох інших об’єктів, кожен з яких є частиною цілого.
Композиція — це зв’язок, при якому асоціація класу/імені не здійснюється до того, як об’єкт, призначений ім’ям, створюється під час виконання.
Композиція — це процес збору класів, які надають набір послуг для певної області.
Q80. Статичний поліморфізм використовує метод _?
Перевантаження (Overloading)
Наслідування (Inheritance)
Абстракцію (Abstraction)
Перекриття (Overriding)
Q81. Чого не має конкретний клас?
Батьків
Чистих віртуальних функцій
Атрибутів
Мети
Q82. Як динамічне типізування ускладнює усунення несправностей?
Може бути складно визначити змінні, які мають неправильний тип
Динамічні змінні можуть приймати лише обмежені значення
Для динамічних змінних фіксоване зберігання
Статичні змінні більш гнучкі, ніж динамічні
Q83. У чому різниця між раннім і пізнім зв’язуванням?
Раннє зв’язування — це коли змінна отримує значення при створенні області видимості. Пізнє зв’язування — це коли змінна отримує значення після виходу з області видимості
Раннє зв’язування — це коли змінна отримує значення при запуску програми. Пізнє зв’язування — це коли змінна отримує значення після того, як програма запущена
Немає різниці. У обох випадках змінні отримують значення, коли програма завершила запуск і працює
Раннє зв’язування — це коли змінна отримує своє значення на етапі компіляції. Пізнє зв’язування — це коли змінна отримує значення під час виконання
Q84. У чому різниця між інтерфейсом і абстрактним класом?
Інтерфейси можуть містити код або дані. Абстрактні класи не містять код або дані. Клас може успадковуватися від декількох абстрактних класів, але може реалізувати лише один інтерфейс.
Інтерфейси можуть містити код або дані. Абстрактні класи не містять код або дані. Клас може успадковуватися тільки від одного абстрактного класу, але може реалізувати необмежену кількість інтерфейсів.
Абстрактні класи можуть містити код або дані. Інтерфейси не містять код або дані. Клас може успадковуватися тільки від одного абстрактного класу, але може реалізувати необмежену кількість інтерфейсів.
Абстрактні класи можуть містити код або дані. Інтерфейси не містять код або дані. Клас може успадковуватися від декількох абстрактних класів, але може реалізувати тільки один інтерфейс.
Q85. Які параметри потрібно передати конструктору класу?
Оскільки тут не вказана конкретна мова програмування, розглянемо всі мови.
Посилання на підклас (reference to subclass) // Посилання на підклас ніколи не є необхідними, оскільки ви можете просто ініціалізувати підклас і використовувати його об’єкт.
Посилання на базовий клас (reference to base class) // Посилання на базовий клас не потрібні в Java, JavaScript і Python
Посилання на this (reference to this pointer) // Хоча Python і JavaScript можуть вимагати передачі this або self у конструкторі, це не передається у конструктор Java.
Нічого (none) // Вище зазначені варіанти неправильні, тому “нічого” є правильним.
Q86. Які чотири принципи об’єктно-орієнтованого програмування?
маніпуляція, інкапсуляція, успадкування і інверсія залежностей
інверсія залежностей, принцип відкритості/закритості, інкапсуляція і успадкування
розділення інтерфейсів, абстракція, інверсія залежностей і успадкування
абстракція, інкапсуляція, наслідування і поліморфізм
Q87. З принципів SOLID об’єктно-орієнтованого програмування, яке твердження найкраще описує принцип заміщення Ліскова?
Клас повинен мати тільки одну відповідальність — тобто тільки зміни в одній частині специфікації програмного забезпечення повинні впливати на специфікацію класу.
Програмні сутності повинні бути відкриті для розширення, але закриті для модифікації.
Багато специфічних для клієнта інтерфейсів краще, ніж один універсальний інтерфейс.
Об’єкти в програмі повинні бути замінювані екземплярами своїх підтипів без зміни правильності програми.
Q88. Окрім відповідальностей, що ще повинно бути вказано на картках класів-відповідальностей-співпраці (CRC)?
Яка мова програмування буде використана.
Програміст, відповідальний за реалізацію.
Взаємодіючі класи.
Атрибути.
Q89. Яка найкраща назва функції, що виправляє це оцінювання?
makeResult()
questionScore()
calculateScore()
getAnswers()
Q90. Яке відношення найкраще ілюструє відношення абстрактний-конкретний клас?
кіт : кошеня
колір : червоний
планета : місяць
вантажівка : вікно
Q91. Що не може бути використано для поліморфізму?
Q100. Чи можна мати два класи з однаковим ім’ям в одному проекті?
Ні, не можна.
Так, якщо їх конструктори різні.
Так, якщо їх методи різні.
Так, якщо вони знаходяться в різних просторах імен (namespaces).
Q101. Об’єкти передаються за _
значенням або посиланням, в залежності від мови програмування
значенням
значенням або посиланням, в залежності від програми
посиланням
Q102. Якщо мова реалізує лише передачу параметрів за значенням у функції, чи можуть об’єкти, передані як параметри, бути встановлені на нові екземпляри всередині функції і їх нове значення повернутися до виклику?
Так, але тільки якщо це посилання, а не примітивний клас.
Так, оскільки значення є посиланням, навіть якщо воно передається за значенням, це можливо.
Ні, ви отримаєте помилку компіляції.
Ні, буде ініціалізовано локальну копію, яка буде втрачена, як тільки вона вийде з області видимості.
Q103. Що таке інкапсуляція?
визначення класів, зосереджуючись на тому, що важливо для мети
визначення даних і відповідних методів разом в одному класі
зробити всі методи приватними
використання слів для визначення класів
Q104. Що таке метод?
функція, що асоціюється з даними та поведінкою
те саме, що і функція та підпрограма
набір змінних, що можуть змінюватися з часом
набір інструкцій, розроблений для виконання часто використовуваної операції в програмі який не повертає значень
Q105. Який найточніший приклад принципу заміщення Ліскова?
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{}
Q109. Екземпляр якого типу класу не може бути створений?
Захищений клас (Protected class)
Базовий клас (Base class)
Анонімний клас (Anonymous class)
Абстрактний клас (Abstract class)
Q110. З принципів SOLID об’єктно-орієнтованого програмування, яке твердження найкраще описує принцип заміщення Ліскова?
Клас повинен мати тільки одну відповідальність — тобто тільки зміни в одній частині специфікації програмного забезпечення повинні впливати на специфікацію класу.
Програмні сутності повинні бути відкриті для розширення, але закриті для модифікації.
Багато специфічних для клієнта інтерфейсів краще, ніж один універсальний інтерфейс.
Об’єкти в програмі повинні бути замінювані екземплярами своїх підтипів без зміни правильності програми.
Q111. Які п’ять шаблонів створення з шаблону “Банди чотирьох (Gang of Four)” ?
Observer, State, Strategy, Template Method, і Visitor.
Composite, Visitor, State, Prototype, і Singleton.
Composite, Builder, Factory Method, Prototype, і Singleton.
Abstract Factory, Builder, Factory Method, Prototype, і Singleton.
Q112. Яка різниця між інтерфейсом і абстрактним класом?
Інтерфейси можуть містити код або дані. Абстрактні класи не містять коду або даних. Клас може успадковувати більше одного абстрактного класу, але може реалізувати лише один інтерфейс.
Інтерфейси можуть містити код або дані. Абстрактні класи не містять коду або даних. Клас може успадковувати лише один абстрактний клас, але може реалізувати необмежену кількість інтерфейсів.
Абстрактні класи можуть містити код або дані. Інтерфейси не містять коду або даних. Клас може успадковувати лише один абстрактний клас, але може реалізувати необмежену кількість інтерфейсів.
Абстрактні класи можуть містити код або дані. Інтерфейси не містять коду або даних. Клас може успадковувати більше одного абстрактного класу, але може реалізувати лише один інтерфейс.
Q113. Який зв’язок найкраще ілюструє відносини абстрактного і конкретного класу?
кіт : кошеня
колір : червоний
планета : місяць
вантажівка : вікно
Q114. Яка перевага використання ін’єкції залежностей?
слабка зв’язаність
повторне використання коду
лінива ініціалізація
абстракція даних
Q115. _ описує агрегацію
Клас ресурсів
Група методів
Колекція об’єктів
Список дітей
Q116. Який тип функцій можна використовувати для поліморфізму?
віртуальна функція
вбудована функція
не визначена функція
приватна функція
Q117. Яка перевага використання ін’єкції залежностей?
слабка зв’язаність
повторне використання коду
лінива ініціалізація
абстракція даних
Q118. Чи потрібно повернути об’єкт, якщо він був переданий за посиланням у функцію, і чому або чому ні?
Так, функція виклику повинна відобразити зміни.
Ні, слід використовувати глобальну змінну.
Ні, зміни автоматично відобразяться у функції виклику.
Так, об’єкт повинен бути таким же у функції виклику.
Q119. З принципів SOLID об’єктно-орієнтованого програмування, яке твердження найкраще описує принцип заміщення Ліскова?
Клас повинен мати лише одну відповідальність — тобто тільки зміни в одній частині специфікації програмного забезпечення повинні впливати на специфікацію класу.
Програмні сутності повинні бути відкриті для розширення, але закриті для модифікації.
Багато специфічних для клієнтів інтерфейсів краще ніж один універсальний інтерфейс.
об’єкти в програмі повинні бути замінювані екземплярами їх підтипів без порушення коректності програми.
Q120. Окрім відповідальностей, що ще повинно бути вказано на картках Class-responsability-collaboration (CRC)?
Яка мова програмування буде використана.
Програміст, відповідальний за реалізацію.
Взаємодіючі класи.
Атрибути.
Q121. Яка найкраща назва для функції, що виправляє цю оцінку?