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