Зміст[Сховати][Показати]
- 1. Що таке об'єктно-орієнтоване програмування?
- 2. Навіщо потрібні ООП?
- 3. Які переваги пропонують принципи OOPS?
- 4. Які стовпи концепції ООП?
- 5. Що таке клас?
- 6. Що таке об’єкт?
- 7. Які обмеження ООП?
- 8. Що таке спадкування?
- 9. Що таке інкапсуляція?
- 10. Що таке поліморфізм?
- 11. Що таке абстракція?
- 12. Що саме таке перевантаження методу?
- 13. Що саме таке перевизначення методу?
- 14. Що саме таке суперклас?
- 15. Що саме таке підклас?
- 16. Що таке статичний поліморфізм?
- 17. Що таке динамічний поліморфізм?
- 18. Опишіть поняття конструктора.
- 19. Що таке модифікатори доступу?
- 20. Що таке деструктор?
- 21. Що таке гібридне успадкування?
- 22. Що саме таке ієрархічне успадкування?
- 23. Які недоліки спадкування?
- 24. Що саме є винятком?
- 25. Що таке обробка винятків і які її переваги?
- 26. Що таке віртуальні функції?
- 27. Що таке функція друга?
- 28. Що таке збірка сміття?
- 29. Що саме таке зчеплення?
- 30. Що саме таке згуртованість?
- 31. Опишіть блок try/catch.
- 32. Опишіть заключний блок.
- 33. Що таке інтерфейс?
- 34. Що таке композиція?
- 35. Що таке ланцюжок конструкторів?
- Висновок
Одна з найвпливовіших парадигм програмування називається ООП, або об’єктно-орієнтоване програмування. Замість функцій і процесів він акцентує увагу на класах і об'єктах.
Його головне завдання - зв'язати дані та речі, щоб з ними було простіше працювати. Кожен об’єкт в ООП складається з коду у формі процедур або методів і даних у формі полів.
Такі мови, як C++, Objective C, Python, Perl і Java, є одними з найпопулярніших об’єктно-орієнтованих мови програмування.
Важливо зрозуміти більше про це, оскільки запитання на інтерв’ю «ой-ой» надзвичайно типові. Більшість фірм шукають інженерів, які знайомі з об'єктно-орієнтованими методами та шаблонами. Отже, якщо ви маєте намір відвідати співбесіду, ви повинні добре знати ідеї ООП.
У цьому дописі будуть показані різні запитання для інтерв’ю з об’єктно-орієнтованого програмування, починаючи від початківців і закінчуючи експертами. Таким чином, ви можете пройти співбесіду будь-якого рівня та отримати посаду своєї мрії.
1. Що таке об'єктно-орієнтоване програмування?
Об’єктно-орієнтоване програмування (ООП) базується на реальних об’єктах, а не просто на функціях і процесах. Класи створюються для окремих продуктів.
Спадкування, поліморфізм і приховування є прикладами концепцій реального світу, які ООП включають у програмування. Це також дає можливість зв'язувати дані та код.
2. Навіщо потрібні ООП?
Існує кілька причин, чому ООП є кращими, однак найважливішими є наступні:
- ООП дозволяють людям легко зрозуміти програмне забезпечення, навіть якщо вони не знайомі з реалізацією.
- На жаль, покращення читабельності коду, зрозумілості та зручності обслуговування в десять разів.
- Використовуючи ООП, навіть надзвичайно великі програми можна легко створювати та керувати ними.
3. Які переваги пропонують принципи OOPS?
- УПС, об’єкти програмування моделюють об’єкти реального світу, зменшуючи складність і підвищуючи ясність програми.
- Об’єкти можна багаторазово використовувати в багатьох програмах.
- Кожен об’єкт створює окрему сутність, внутрішні операції якої не залежать від інших компонентів системи.
- Вводячи кілька нових об'єктів і оновлюючи кілька вже існуючих, можна додати нову функціональність або адаптуватися до мінливих умов експлуатації.
- Процеси або представлення даних ООП-програми можуть легко зазнати невеликих коригувань.
4. Які стовпи концепції ООП?
Нижче наведено основні стовпи ООП:
Спадкування: дозволяє класам успадковувати атрибути іншого класу.
Інкапсуляція: Це визначається як властивість об’єкта, яка приховує критичну інформацію. Це дозволяє приховати дані від членів класу. Специфікатори описують, як доступ до атрибута об'єкта здійснюється в коді.
Поліморфізм: це дозволяє виконувати одну дію кількома способами. Це досягається через інтерфейси, в яких ми оголошуємо один інтерфейс, який згодом реалізується кілька разів.
Абстракція: Ви можете використовувати цю функцію, щоб приховати важливу інформацію від зовнішнього світу та представити лише важливі факти.
5. Що таке клас?
Клас — це прототип, що складається з об’єктів у різних станах і з різною поведінкою. Він має низку методів, які спільно використовуються об’єктами цього класу.
6. Що таке об’єкт?
Об’єкт — це реальна сутність, яка служить основною одиницею ООП, наприклад стілець, кіт або собака. Різні об'єкти мають різні стани, властивості та дії.
7. Які обмеження ООП?
- Розмір більший, ніж у інших програм.
- Це вимагає деякого звикання.
- Певні види проблем не вимагають цього.
- Його створення було трудомістким, і порівняно з іншими програмами воно працює повільніше.
8. Що таке спадкування?
Поняття, що називається успадкуванням, стосується спільного використання встановленої структури та поведінки класу іншим класом. Коли успадкування застосовується до одного класу, воно називається єдиним успадкуванням; коли воно залежить від багатьох класів, воно називається множинним успадкуванням.
9. Що таке інкапсуляція?
Ідея ООП включає також інкапсуляцію. Він описує змішування даних і методи маніпулювання даними. Крім того, це допомагає запобігти прямому доступу до деяких частин об’єкта.
10. Що таке поліморфізм?
В ООП мовах поліморфізм є фундаментальним поняттям. Він показує, як різні класи можуть спільно використовувати інтерфейс. Усі ці класи можуть мати унікальні реалізації інтерфейсу.
11. Що таке абстракція?
Абстракція — це концепція об’єктно-орієнтованого програмування (ООП), яка використовується для створення структури об’єктів реального світу. Він «відображає» тільки найважливіші якості і «приховує» сторонню інформацію від зовнішнього світу. Основна мета абстракції - захистити людей від непотрібної інформації.
12. Що саме таке перевантаження методу?
Дві або більше процедур можуть мати однакові назви. Однак вони повинні мати різні параметри, різну кількість параметрів, різні типи або те й інше. Вони відомі як перевантажені методи, а функція відома як перевантаження методів.
13. Що саме таке перевизначення методу?
Об'єктно-орієнтоване програмування включає ідею перевизначення методу. Це функція мови, яка дозволяє підкласу або дочірньому класу пропонувати налаштовану реалізацію методу, який вже надає один із його суперкласів або батьківських класів.
14. Що саме таке суперклас?
Суперклас, часто відомий як базовий клас, є типом класу, який діє як батько іншого класу або класів. Клас Car, наприклад, має підклас під назвою Vehicle.
15. Що саме таке підклас?
Підклас є підкласом іншого класу. Фургон, наприклад, є підкласом транспортних засобів або похідним класом.
16. Що таке статичний поліморфізм?
Під час компіляції має місце тип поліморфізму, відомий як статичний поліморфізм (статичне зв’язування). Перевантаження методів є типом поліморфізму під час компіляції.
17. Що таке динамічний поліморфізм?
Різновид поліморфізму, який вирішується під час виконання, називається поліморфізмом часу виконання, також відомий як динамічний поліморфізм (динамічне зв’язування). Перевизначення методів є ілюстрацією поліморфізму часу виконання.
18. Опишіть поняття конструктора.
Конструктор — це спеціальний метод класу, який автоматично викликається під час створення екземпляра класу. Коли ви отримуєте доступ до класу, він створюється з тим самим іменем, що й клас, і ініціалізує всі його члени. Основними характеристиками конструктора є:
Для конструкторів немає типу повернення.
Можливе перевантаження конструкторів.
Не потрібно вказувати конструктор; .NET Framework зробить це автоматично.
19. Що таке модифікатори доступу?
В об’єктно-орієнтованих мовах ключові слова є модифікаторами або специфікаторами доступу. Це допомагає в конфігурації класів, методів і доступності інших членів.
20. Що таке деструктор?
Деструктор — це метод звільнення ресурсів, призначених об’єкту. Коли об'єкт знищується, цей метод викликається автоматично.
21. Що таке гібридне успадкування?
Гібридне успадкування — це різновид успадкування, яке виникає в результаті змішування кількох форм успадкування, наприклад одиночної, множинної тощо.
22. Що саме таке ієрархічне успадкування?
Кілька підкласів успадковують від батьківського класу в ситуації ієрархічного успадкування. Різновид успадкування, в якому численні класи походять від одного батьківського або базового класу, відомий як ієрархічне успадкування. Наприклад, клас фруктів може містити такі підкласи, як «яблуко», «манго», «банан», «вишня» тощо.
23. Які недоліки спадкування?
Це подовжує і ускладнює процес виконання. Це також вимагає перемикання між різними класами. Батьківський і дочірній класи завжди нерозривно пов’язані.
Зміни в навчальній програмі вимагатимуть перегляду як для батьків, так і для класу дитини. Спадкування потрібно реалізовувати обережно, інакше результати будуть неправильними.
24. Що саме є винятком?
Винятком є інцидент, який заважає звичайній роботі коду. Щоб продовжити виконання, ви можете обробити ці винятки в Java. У Java існує багато видів попередньо визначених винятків, і обробка винятків забезпечується для контролю викликаних винятків за допомогою блоків try-catch.
25. Що таке обробка винятків і які її переваги?
Найважливішим методом у Java для вирішення неочікуваних помилок під час виконання є обробка винятків. Це дозволяє контролювати помилки під час виконання, які виникають під час виконання програми.
Переваги обробки винятків включають можливість зберігати регулярний потік програми під час керування винятками. Наприклад, якщо помилка сталася в одному розділі програми, вона не вплине на решту програми, якщо ми обробимо виняток за допомогою блоків try-catch.
26. Що таке віртуальні функції?
Віртуальні функції також включені до функцій батьківського класу та перевизначені підкласом. Ці підпрограми допомагають у досягненні поліморфізму часу виконання.
27. Що таке функція друга?
Функція друга — це функція, яка належить до класу та має доступ до своїх публічних, приватних або захищених даних. Якщо функція визначена поза класом, отримати ці дані неможливо. Ключові слова керування доступом private, public і protected не мають жодного відношення до декларації друга, яку можна зробити будь-де в декларації класу.
28. Що таке збірка сміття?
Збір сміття (GC) — це елемент таких мов програмування, як C# і Java, який служить системою відновлення пам’яті. Механізм збирання сміття (GC) — це компонент мови програмування, який дозволяє автоматично звільняти простір пам’яті для об’єктів, які програма більше не використовує.
29. Що саме таке зчеплення?
Це стосується ситуацій, у яких різні класи покладаються один на одного та діляться знаннями. Сильний зв’язок виникає, коли один клас має докладні знання про інший клас. Ви можете вказати видимість класів, методів або змінних за допомогою модифікаторів доступу. Інтерфейси використовуються для забезпечення слабшого зв'язку.
30. Що саме таке згуртованість?
Те, як компонент виконує певну діяльність, називається його згуртованістю. Сильний, згуртований підхід просто виконає визначене завдання, тоді як слабкий, згуртований метод розділить одне завдання на кілька менших, а потім завершить їх.
Пакет Java.io досить узгоджений, а пакет java.util – ні.
31. Опишіть блок try/catch.
Коли програма стикається з помилкою через неправильний код або дані, «спробувати» та «зловити» вказують, як з нею впоратися. Блок спроби — це назва частини коду, коли виникають винятки. Блок catch використовується для захоплення та обробки винятків із блоків try.
32. Опишіть заключний блок.
Робоча частина коду ключового слова try вказується останньою. Він позначає код, який завжди запускається відразу після випробування, і будь-які блоки catch до завершення методу. Останній блок завжди виконується незалежно від того, чи виникло виняток, чи було перехоплено.
33. Що таке інтерфейс?
Інтерфейс — це комбінація абстрактних методів і визначеного користувачем типу даних. Клас реалізує інтерфейс, успадковуючи абстрактні функції інтерфейсу.
Клас представляє властивості та поведінку об’єкта, тоді як інтерфейс включає поведінку, яку реалізує клас. Інтерфейс представляє «що», тоді як клас передає «як».
34. Що таке композиція?
Склад можна використовувати для досягнення з'єднання. Він демонструє сильний об’єктний зв’язок між залежним і незалежним об’єктами, на відміну від агрегації. У цьому випадку залежний об’єкт не існує, і його буде видалено, якщо буде стерто батьківський об’єкт.
35. Що таке ланцюжок конструкторів?
З’єднання конструкторів — це техніка виклику одного конструктора з іншого щодо поточного посилання на об’єкт. Є два варіанти:
- На конструктор у поточному класі можна посилатися за допомогою ключового слова «this».
- Ключове слово «super» буде використано для виклику конструктора з базового класу.
Висновок
Об'єктно-орієнтоване програмування вимагає продумування структури програми та підготовки завчасу. Вивчення того, як розділити вимоги на базові багаторазово використовувані класи, які можна використовувати для створення екземплярів речей.
Загалом використання ООП забезпечує покращення структури даних можливість багаторазового використання, що економить час у довгостроковій перспективі. Побачити Серія інтерв'ю Хашдорка за допомогу в підготовці до співбесіди.
залишити коментар