Лекція_Тема 9. Відносини між класами

ОСНОВНІ ПРИНЦИПИ ООП

У цьому світі будь-що є об’єктом, чи не так? Ну, майже все. Однак, саме ствердження про те, що все є об’єктом, лежить в основі ООП. Вся парадигма об'єктноорієнтованого програмування — це концепція об'єктів. Ці об’єкти містять дані, які ми також називаємо атрибутами або властивостями, і методи. Об'єкти можуть взаємодіяти один з одним за чотирма принципами: інкапсуляція, наслідування, поліморфізм та абстракція.

ІНКАПСУЛЯЦІЯ (ENCAPSULATION)

Інкапсуляція — це принцип ООП, який полягає в приховуванні деталей реалізації об'єктів від «зовнішнього світу». Цей принцип стверджує, що вся важлива інформація міститься всередині об’єкта, а назовні доступна тільки вибрана інформація. Реалізація та стан кожного об’єкта приватно зберігаються всередині визначеного класу. Інші об'єкти не мають доступу до цього класу або повноважень вносити зміни. Вони ладні взаємодіяти лише з певною кількістю відкритих функцій або методів. Подібне приховування даних гарантує безпеку програми та контроль над зміною стану об’єкта, знижує ризик помилок та робить програму більш зрозумілою.

НАСЛІДУВАННЯ (INHERITANCE)

Наслідування — це принцип, який дозволяє створювати нові класи на основі наявних (батьківських класів), з можливістю перевизначення або доповнення їх властивостей та методів. Програми можуть містити тисячі рядків коду, який часто складно підтримувати. Ще одна проблема, з якою часто стикаються девеловпери, полягає в тому, що у програмах є схожі об'єкти. Вони можуть мати спільний код або логіку, але вони не зовсім однакові. Якби щоразу доводилося створювати абсолютно новий об’єкт для кожного об’єкта, який використовується в програмі, це призвело б до збільшення та ускладнювання коду. Щоб запобігти цьому, використовуються принцип наслідування. З його допомогою розробник може використати логіку батьківського класу у дочірньому. Це спрощує розробку та зменшує кількість дублювального коду.

ПОЛІМОРФІЗМ (POLYMORPHISM)

Поліморфізм — це принцип, який в певному сенсі доповнює наслідування. Тобто об'єкти різних класів можуть виконувати дії з однаковою назвою, використовуючи різний код. Наприклад, метод «показати інформацію» може відображати різні дані про об'єкти типу «автомобіль», «літак» або «корабель». Окрім того, поліморфізм допомагає створювати більш гнучкі та модульні програми, й в цілому спрощує процес розробки, оскільки можна створювати загальні методи та функції, які можуть використовуватися для різних типів об'єктів.

АБСТРАКЦІЯ (ABSTRACTION)

Абстракція допомагає зосередитися на головних аспектах системи та ігнорувати менш важливі деталі, які не впливають на головні функції. Це дозволяє створювати більш зрозумілі програми. Абстракцію можна розглядати як розширення до інкапсуляції. Знову ж таки, візьмемо програми, що містять тисячі рядків коду. Завдяки принципу абстракції кожен об’єкт відкриває лише певний механізм для використання. Таким чином, код всередині значною мірою стає нерелевантним для інших об’єктів. Наприклад, у програмі для зберігання інформації про кіно можна створити клас «Фільм», який надає доступ тільки до найбільш важливих деталей про ту чи іншу стрічку, скажімо, до назви, року випуску та жанру, приховуючи менш важливі деталі, як от кадри чи технічні параметри.


Клацніть Лекц_Тема 9. Відносини між класами.pdf для перегляду файлу