Як випливає з назви, об’єктно-орієнтоване програмування або ООП відноситься до мов, які використовують об’єкти в програмуванні. Об’єктно-орієнтоване програмування спрямоване на реалізацію реальних сутностей, таких як успадкування, приховування, поліморфізм тощо в програмуванні. Основною метою ООП є зв’язування даних і функцій, які з ними працюють, щоб жодна інша частина коду не могла отримати доступ до цих даних, окрім цієї функції.
Концепції ООП:
- Клас
- Об'єкти
- Абстракція даних
- Інкапсуляція
- Спадщина
- Поліморфізм
- Динамічне прив'язування
- Передача повідомлень
1. Клас:
Клас — це визначений користувачем тип даних. Він складається з членів даних і функцій-членів, до яких можна отримати доступ і використовувати, створивши екземпляр цього класу. Він представляє набір властивостей або методів, які є загальними для всіх об'єктів одного типу. Клас схожий на план для об’єкта.
Наприклад: Розглянемо клас автомобілів. Може бути багато автомобілів з різними назвами та марками, але всі вони матимуть спільні властивості, як-от усі вони матимуть 4 колеса, обмеження швидкості, пробіг тощо. Отже, тут автомобіль – це клас, а колеса, обмеження швидкості, пробіг їх властивості.
cast sql
2. Об'єкт:
Це базова одиниця об’єктно-орієнтованого програмування та представляє реальні сутності. Об’єкт – це екземпляр класу. Коли клас визначено, пам’ять не виділяється, але коли він створюється (тобто створюється об’єкт), пам’ять виділяється. Об’єкт має ідентичність, стан і поведінку. Кожен об’єкт містить дані та код для маніпулювання даними. Об’єкти можуть взаємодіяти без необхідності знати подробиці даних або коду один одного, достатньо знати тип прийнятого повідомлення та тип відповіді, яку повертають об’єкти.
Наприклад, собака — це реальний об’єкт, який має такі характеристики, як колір, порода, гавкіт, сон і їжа.

Об'єкт
3. Абстракція даних:
java перетворює рядок на int
Абстракція даних є однією з найважливіших і важливих особливостей об'єктно-орієнтованого програмування. Абстракція даних означає надання лише необхідної інформації про дані зовнішньому світу, приховуючи фонові деталі або реалізацію. Розглянемо реальний приклад чоловіка за кермом автомобіля. Людина знає тільки те, що натискання на акселератор збільшить швидкість автомобіля або застосування гальм зупинить автомобіль, але він не знає про те, як при натисканні на акселератор швидкість збільшується, він не знає про внутрішній механізм автомобіля або застосування акселератора, гальм тощо в автомобілі. Ось що таке абстракція.
4. Інкапсуляція:
встановити факел
Інкапсуляція визначається як загортання даних в єдиний блок. Це механізм, який поєднує код і дані, якими він маніпулює. В інкапсуляції змінні або дані класу приховані від будь-якого іншого класу, і до них можна отримати доступ лише через будь-яку функцію-член свого класу, в якому вони оголошені. Як і в інкапсуляції, дані в класі приховані від інших класів, тому його також називають приховування даних .
Розглянемо реальний приклад інкапсуляції: у компанії існують різні розділи, як-от розділ рахунків, відділ фінансів, відділ продажу тощо. Фінансовий відділ обробляє всі фінансові операції та зберігає записи всіх даних, пов’язаних з фінансами. Подібним чином відділ продажів займається всією діяльністю, пов’язаною з продажами, і веде облік усіх продажів. Тепер може виникнути ситуація, коли чиновнику з фінансового відділу з якихось причин потрібні всі дані про продажі в конкретному місяці. У цьому випадку він не має прямого доступу до даних розділу продажів. Спочатку йому доведеться зв’язатися з іншим співробітником відділу продажів, а потім попросити його надати конкретні дані. Ось що таке інкапсуляція. Тут дані відділу продажів і співробітників, які можуть маніпулювати ними, об’єднані в одну назву розділ продажів.
5. Спадщина:
Спадкування є важливою опорою ООП (об’єктно-орієнтованого програмування). Здатність класу отримувати властивості та характеристики від іншого класу називається успадкуванням. Коли ми пишемо клас, ми успадковуємо властивості від інших класів. Отже, коли ми створюємо клас, нам не потрібно писати всі властивості та функції знову і знову, оскільки вони можуть бути успадковані від іншого класу, який має ці властивості. Успадкування дозволяє користувачеві повторно використовувати код, коли це можливо, і зменшити його надмірність.
c програма для двовимірного масиву
6. Поліморфізм:
Слово поліморфізм означає наявність багатьох форм. Простими словами, ми можемо визначити поліморфізм як здатність повідомлення відображатися в більш ніж одній формі. Наприклад, людина одночасно може мати різні характеристики. Як чоловік є водночас батьком, чоловіком, працівником. Таким чином, одна й та сама людина має різну поведінку в різних ситуаціях. Це називається поліморфізмом.
7. Динамічне прив'язування:
У динамічному зв’язуванні код, який буде виконано у відповідь на виклик функції, визначається під час виконання. Динамічне зв'язування означає, що код, пов'язаний із даним викликом процедури, невідомий до моменту виклику під час виконання. Динамічне зв’язування методів. Однією з головних переваг успадкування є те, що деякий похідний клас D має всі члени свого базового класу B. Якщо D не приховує жодного з відкритих членів B, тоді об’єкт D може представляти B у будь-якому контексті. де можна використовувати букву B. Ця особливість відома як поліморфізм підтипу.
8. Передача повідомлень:
Це форма зв’язку, яка використовується в об’єктно-орієнтованому програмуванні, а також у паралельному програмуванні. Об’єкти спілкуються один з одним, надсилаючи та отримуючи інформацію один одному. Повідомлення для об’єкта є запитом на виконання процедури, тому воно викликає функцію в об’єкті-одержувачі, яка генерує бажані результати. Передача повідомлень передбачає вказівку імені об’єкта, імені функції та інформації, яка надсилається.
сортування оболонки
Навіщо нам об'єктно-орієнтоване програмування
- Зробити розробку та підтримку проектів легшими.
- Забезпечити функцію приховування даних, яка корисна з міркувань безпеки.
- Ми можемо вирішувати проблеми реального світу, якщо використовуємо об’єктно-орієнтоване програмування.
- Це забезпечує повторне використання коду.
- Це дозволяє нам писати загальний код, який працюватиме з різними даними, тому нам не доведеться писати базові речі знову і знову.