align="justify"> - інкапсуляція (encapsulation);
модульність (modularity);
ієрархія (hierarchy).
Крім основних є ще три додаткових елементи, які не є на відміну від основних строго обов'язковими:
- типізація (typing);
- паралелізм (concurrency);
стійкість (persistence).
Абстрагування - це виділення істотних характеристик деякого об'єкта, які відрізняють його від усіх інших видів об'єктів і, таким чином, чітко визначають його концептуальні межі щодо подальшого розгляду та аналізу. Абстрагування концентрує увагу на зовнішніх особливостях об'єкта і дозволяє відокремити найістотніші особливості його поведінки від деталей їх реалізації. Вибір правильного набору абстракцій для заданої предметної області являє собою головне завдання об'єктно-орієнтованого проектування.
Інкапсуляція - це процес відділення один від одного окремих елементів об'єкта, що визначають його пристрій і поведінку. Інкапсуляція служить для того, щоб ізолювати інтерфейс об'єкта, що відображає його зовнішнє поводження, від внутрішньої реалізації об'єкта. Об'єктний підхід передбачає, що власні ресурси, якими можуть маніпулювати тільки методи самого класу, приховані від зовнішнього середовища. Абстрагування і інкапсуляція є взаємодоповнюючими операціями: абстрагування фокусує увагу на зовнішніх особливостях об'єкта, а інкапсуляція (або, інакше, обмеження доступу) не дозволяє об'єктам-користувачам розрізняти внутрішній устрій об'єкта.
Модульність - це властивість системи, пов'язане з можливістю її декомпозиції на ряд внутрішньо зв'язкових, але слабко пов'язаних між собою модулів. Інкапсуляція і модульність створюють бар'єри між абстракціями.
Ієрархія - це ранжированная або впорядкована система абстракцій, розташування їх за рівнями. Основними видами ієрархічних структур стосовно до складних систем є структура класів (і?? ієрархія по номенклатурі) і структура об'єктів (ієрархія по складу). Прикладами ієрархії класів є просте і множинне спадкування (один клас використовує структурну або функціональну частину відповідно одного або декількох інших класів), а ієрархії об'єктів - агрегація.
Типізація - це обмеження, що накладається на клас об'єктів і перешкоджає взаємозамінності різних класів (або сильно звужуюче її можливість). Типізація дозволяє захиститися від використання об'єктів одного класу замість іншого або, принаймні, управляти таким використанням.
Паралелізм - властивість об'єктів знаходитися в активному або пасивному стані і розрізняти активні і пасивні об'єкти між собою.
Стійкість - властивість об'єкта існувати в часі (незалежно від процесу, що народив даний об'єкт) та/або в просторі (при переміщенні об'єкта з адресного простору, в якому він був створений ).
3.2 Об'єкт і клас
Об'єкт визначається як відчутна реальність (tangible entity) - предмет або явище, що має чітко визначається поведінку. Об'єкт має статки, поведінкою і індивідуальністю; структура і поведінка схожих об'єктів визначають загальний для них клас. Терміни екземпляр класу і" об'єкт є еквівалентними. Стан об'єкта характеризується переліком всіх можливих (статичних) властивостей даного об'єкту і поточними значеннями (динамічними) кожного з цих властивостей. Поведінка характеризує вплив об'єкта на інші об'єкти і навпаки щодо зміни стану цих об'єктів та передачі повідомлень. Інакше кажучи, поведінка об'єкта повністю визначається його діями. Індивідуальність - це властивості об'єкта, що відрізняють його від усіх інших об'єктів.
Певний вплив одного об'єкта на інший з метою викликати відповідну реакцію називається операцією. Як правило, в об'єктних і об'єктно-орієнтованих мовах операції, що виконуються над даним об'єктом, називаються методами і є складовою частиною визначення класу.
Клас - це безліч об'єктів, пов'язаних спільністю структури і поведінки. Будь-який об'єкт є екземпляром класу. Визначення класів і об'єктів - одна з найскладніших завдань об'єктно-орієнтованого проектування.
3.3 Успадкування та поліморфізм
Наступну групу важливих понять об'єктного підходу складають успадкування і поліморфізм. Поняття поліморфізму може бути інтерпретовано як здатність класу належати більш ніж одному типу.
Спадкування означає побудову нових класів на основі існуючих з можливістю додавання або перевизначення даних і методів.
Об'єктно-орієнтована система спочатку б...