Історія ООП
Об'єктно-орієнтована парадигма програмування не нова. Її витоки сягають Сімуле-67, хоча перша повна реалізація була в Smalltalk-80. ООП (Об'єктно-орієнтоване програмування) стало популярним в другій половині 80-х у таких різних мовах, як C++, Objective C (інше розширення C), Object і Турбо Паскаль (Turbo Pascal), CLOS (ГО-розширення Ліспу ), Eiffel, Ада (в її останніх втіленнях) і недавно - в Джаві (Java).
Ми будемо розглядати основу ООП на мові C++ та досить схожій на неї мові PHP, іноді Обджект Паскалі (Object Pascal) і Джава (Java) та інші мови.
Принципи ООП:
- інкапсуляція - це визначення класів - користувальницьких типів даних, які об'єднують свій вміст в єдиний тип і реалізують деякі операції або методи над ним. Класи зазвичай є основою модульності, інкапсуляція та абстракції даних в мовах ООП.
- наслідування - є спосіб визначення нового типу, наслідуючи елементи (зміст і методи) існуючого і модифікуючи або розширюючи їх. Це сприяє висловом спеціалізації і генералізації.
- поліморфізм - дозволяє одноманітно посилатися на об'єкти різних класів (зазвичай всередині деякої ієрархії). Це робить класи ще більш зручними і робить програми, засновані на них, легше для розширення і підтримки.
- Абстракція даних - Об'єкти представляють собою спрощене, ідеалізоване опис реальних сутностей предметної області. Якщо відповідні моделі адекватні розв'язуваної задачі, то працювати з ними виявляється набагато зручніше, ніж з низькорівневими описом всіх можливих властивостей і реакцій об'єкта.
Інкапсуляція, наслідування та поліморфізм - фундаментальні властивості, які вимагаються від мови, яка претендує називатися об'єктно-орієнтованим (мови, що не мають успадкування та поліморфізму, але мають лише класи, звичайно називаються заснованими на класах). Різні мови використовують ОО зовсім різні підходи. Ми можемо розрізняти ОО мови, порівнюючи механізм контролю типів, здатність підтримувати різні програмні моделі і те, які об'єктні моделі вони підтримують.
Самое лаконичное описание объекта предложил Буч: «Объект обладает состоянием, поведением и индивидуальностью».