Що потрібно знати про ООП | robot_dream
Для відстеження статусу замовлення - авторизуйтесь
Введіть код, який був надісланий на пошту Введіть код із SMS, який був надісланий на номер
 
Код дійсний протягом 2 хвилин Код з SMS дійсний протягом 2 хвилин
Ви впевнені, що хочете вийти?
Сеанс завершено
На головну
Об’єктно-орієнтоване програмування: основи та принципи

Об’єктно-орієнтоване програмування: основи та принципи

Що потрібно знати про ООП

Об’єктно-орієнтоване програмування (ООП) — парадигма, яка розглядає програму як безліч «об’єктів».

Наприклад, в автомобіля є характеристики: модель, колір, рік випуску, об’єм двигуна. Якщо нам потрібно створити об’єкт Car, ці характеристики будуть його атрибутами. Для кожної нової машини код вихідного об’єкта car використовуватиметься повторно.

Розповідаємо про принципи та типи ООП.

Основи об’єктно-орієнтованого програмування

Об’єктно-орієнтоване програмування (ООП) ґрунтується на концепції класів та об’єктів. Її застосовують, щоб структурувати програму в прості частини коду (класи), які потрібні для створення окремих елементів об’єкта.

Часто класи — це широкі категорії (наприклад, «автомобіль» або «собака»), у яких є спільні атрибути. Наприклад, серед атрибутів класу «автомобіль» — марка і колір. Завдання класів — визначити, які атрибути матиме екземпляр. Класи також можуть містити функції (методи), доступні тільки об’єктам цього типу. Найпопулярніші об’єктно-орієнтовані мови — Java, C++, C#, Python і JavaScript.

Мови ООП

  • Java — одна з особливостей мови в тому, що її код спочатку транслюється в спеціальний байт-код, незалежний від платформи. Потім він виконується віртуальною машиною JVM (Java Virtual Machine). В ООП у Java дані зберігаються в атрибутах — це змінні, пов’язані з конкретними об’єктами.

  • Python — універсальна мова, яку найчастіше використовують у машинному навчанні та науці про дані.
  • C++ — строго типізована мова програмування загального призначення. Її залучають для створення компіляторів та інтерпретаторів для інших мов.
  • Ruby — створена як мова програмування загального призначення. Вона високорівнева (у ній багато абстракцій), динамічна (типи даних визначаються під час виконання програми, що збільшує швидкість) та інтерпретована (її не потрібно компілювати в машинний код). Детальніше про неї ми писали тут.
  • C# — мова, яку розробили для поліпшення наявних концепцій C. Вона підтримує платформу Microsoft.NET разом із багатьма вебзастосунками, іграми, настільними та мобільними застосунками.

Також ООП підтримує й інші мови. Наприклад, Perl, Objective-C, Dart, Lisp, JavaScript і PHP.

4 принципи об’єктно-орієнтованого програмування

  • Інкапсуляція

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

    Уявімо, що є кілька об’єктів класу «машина» з параметром «кількість бензину в баку». Розробник не може зробити так, щоб інформацію про кількість бензину міг безпосередньо використовувати хтось/щось, крім самої машини (наприклад, вона може подати сигнал про нестачу пального, але решта автомобілів на дорозі не можуть самостійно дізнатися, скільки бензину в баках інших машин).

    Ця кількість може змінитися тільки за допомогою спеціального методу «машина.заправка_бензином()».
  • Абстракція

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

    Візьмемо приклад, пов’язаний з комп’ютерною грою. Метод Attack може містити багато рядків коду. Цей код вказує, як героя можна атакувати і як атака вплине на його здоров’я. Ворожому об’єкту не потрібно знати, як працює атака. Досить того, що вона погіршить показники героя.
  • Спадкування

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

    Якщо в батьківському класі визначено базові атрибути та поведінку, то створювати дочірні класи можна, додаючи ці атрибути.

    Наприклад, пастуші собаки мають унікальну здатність пасти тварин. Усі пастуші собаки — собаки, але не всі собаки — пастуші. Для цієї відмінності створюють дочірній клас HerdingDog з батьківського класу Dog, а потім додають унікальну поведінку herd ().

    Переваги успадкування в тому, що програми можуть створювати загальний батьківський клас, а потім (за потреби) конкретніші дочірні класи. Це спрощує загальне програмування, оскільки замість багаторазового відтворення структури класу Dog дочірні класи автоматично отримують доступ до функцій свого батьківського класу.
  • Поліморфізм

    Це проєктування об’єктів, що поділяють поведінку.

    Використовуючи успадкування, об’єкти можуть зумовлювати спільні батьківські поведінки з певними дочірніми об’єктами. Поліморфізм дозволяє одному й тому самому методу виконувати різну поведінку, визначаючи метод або перезавантажуючи його.

    Наприклад, у грі в усіх ворогів може бути метод Attack, який він успадковує від батька, але кожен — із власною реалізацією.
Ще статті
Порівнюємо швидкість, якість і відповідальність за результат