Основні концепції ООП

Мова візуального моделювання - це формальна мова, який має графічну нотацію, мова призначена для візуального моделювання та специфікації програмних і апаратних засобів.

Уніфікована мова моделювання UML - формальна мова візуального моделювання, який призначений для проектування і побудови моделей складних програмних систем.

Однією з альтернатив директивному (імперативного) програмування є об'єктно-орієнтоване програмування. яке дійсно допомагає впоратися з нелінійно зростаючої складністю програм при збільшенні їх обсягу.

(Основні ідеї об'єктно-орієнтованого проектування та об'єктно-орієнтованого програмування однакові, тому що розроблений проект реалізується на одному з об'єктно-орієнтованих мов програмування)

Об'єктно-орієнтоване програмування або ООП - методологія програмування, заснована на представленні програми у вигляді сукупності об'єктів, кожен з яких є реалізацією певного типу, що використовує механізм пересилки повідомлень і класи, організовані в ієрархію наслідування.

Центральний елемент ООП - абстракція. Дані за допомогою абстракції перетворюються в об'єкти. а послідовність обробки цих даних перетворюється в набір повідомлень, переданих між цими об'єктами. Кожен з об'єктів має своє власне унікальне поведінку. З об'єктами можна звертатися як з конкретними сутностями, які реагують на повідомлення, що наказують їм виконати якісь дії.

ООП характеризується наступними принципами (по Алану Кею):

· Все є об'єктом;

· Обчислення здійснюються шляхом взаємодії (обміну даними) між об'єктами, при якому один об'єкт вимагає, щоб інший об'єкт виконав деяку дію; об'єкти взаємодіють, посилаючи і отримуючи повідомлення; повідомлення - це запит на виконання дії, доповнений набором аргументів, які можуть знадобитися при виконанні дії;

· Кожен об'єкт має незалежну пам'ять. яка складається з інших об'єктів;

· Кожен об'єкт є представником класу, який висловлює загальні властивості об'єктів даного типу;

· В класі задається функціональність (поведінка об'єкта); тим самим всі об'єкти, які є екземплярами одного класу, можуть виконувати одні і ті ж дії;

· Класи організовані в єдину деревоподібну структуру з загальним коренем, звану ієрархією спадкоємства; пам'ять і поведінка, пов'язана з екземплярами певного класу, автоматично доступні будь-якому класу, розташованому нижче в ієрархічному дереві.

Абстрагування дозволяє відокремити логічний зміст фрагмента програми від проблеми його реалізації, розділивши зовнішнє опис (інтерфейс) об'єкта і його внутрішню організацію (реалізацію).

Інкапсуляція (encapsulation) - техніка, при якій несуттєва з точки зору інтерфейсу об'єкта інформація ховається усередині нього.

Спадкування (inheritance) - властивість об'єктів, за допомогою якого екземпляри класу отримують доступ до даних і методів класів-предків без їх повторного визначення.

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

Поліморфізм (polymorphism) - властивість, що дозволяє використовувати один і той же інтерфейс для різних дій; полиморфной змінної, наприклад, може відповідати кілька різних методів.

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

Клас (class) - безліч об'єктів, пов'язаних спільністю структури і поведінки; абстрактне опис даних і поведінки (методів) для сукупності схожих об'єктів, представники якої називаються екземплярами класу.

Об'єкт (object) - конкретна реалізація класу, що володіє характеристиками стану, поведінки і індивідуальності, синонім екземпляра.

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

Схожі статті