Відмінності між версіями «Історія ООП»

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук
Рядок 3: Рядок 3:
 
Ми будемо розглядати основу ООП на мові C++ та досить схожій на неї мові PHP, іноді Обджект Паскалі (Object Pascal) і Джава (Java) та інші мови.
 
Ми будемо розглядати основу ООП на мові C++ та досить схожій на неї мові PHP, іноді Обджект Паскалі (Object Pascal) і Джава (Java) та інші мови.
  
Принципи ООП:
+
Мабуть, першим комп'ютерним рішенням, що втілив у собі об'єктний підхід, став програмно-апаратний графічний Планшет (Sketchpad: A Man-Machine Graphical Communications System), що використав обладнання DEC PDP. Його в 1963 р. розробив 25-річний Іван Сазерленд, що допомагав у створенні симуляторів вертольотів військовому науковому агентству DARPA, а потім зайнявся в Массачусетському технологічному інституті докторською дисертацією і мав задоволення спілкування з Клодом Шенноном. За допомогою світлового пера і системи меню, що випадають користувач Планшети міг малювати різні нескладні зображення на дисплеї аналоговому, переміщати їх і точно розташовувати в певних позиціях екрану, а також зберігати. Як поняття класу Сазерленд використовував визначення "майстер", розділяючи опис і реально існуючий на екрані об'єкт (екземпляр "майстри").
<ul>
+
<li><b>інкапсуляція</b> - це визначення класів - користувальницьких типів даних, які об'єднують свій вміст в єдиний тип і реалізують деякі операції або методи над ним. Класи зазвичай є основою модульності, інкапсуляція та абстракції даних в мовах ООП.</li>
+
<li><b>наслідування</b> - є спосіб визначення нового типу, наслідуючи елементи (зміст і методи) існуючого і модифікуючи або розширюючи їх. Це сприяє висловом спеціалізації і генералізації.</li>
+
<li><b>поліморфізм</b> - дозволяє одноманітно посилатися на об'єкти різних класів (зазвичай всередині деякої ієрархії). Це робить класи ще більш зручними і робить програми, засновані на них, легше для розширення і підтримки.</li>
+
<li><b>Абстракція даних</b> - Об'єкти представляють собою спрощене, ідеалізоване опис реальних сутностей предметної області. Якщо відповідні моделі адекватні розв'язуваної задачі, то працювати з ними виявляється набагато зручніше, ніж з низькорівневими описом всіх можливих властивостей і реакцій об'єкта.</li>
+
</ul>
+
  
Інкапсуляція, наслідування та поліморфізм - <b>фундаментальні властивості</b>, які вимагаються від мови, яка претендує називатися об'єктно-орієнтованим (мови, що не мають успадкування та поліморфізму, але мають лише класи, звичайно називаються заснованими на класах). Різні мови використовують ОО зовсім різні підходи. Ми можемо розрізняти ОО мови, порівнюючи механізм контролю типів, здатність підтримувати різні програмні моделі і те, які об'єктні моделі вони підтримують.
+
Сазерленд також придумав перший прототип нинішніх систем віртуальної реальності, ухитрившись спроектувати зображення з двох моніторів безпосередньо в очі людини (як стереоскопічний фільм), а було це в 1968 р. Спеціальні датчики контролювали положення голови і відповідно змінювали прокручуваний перед очима ролики. Ця людина захистив вісім патентів з комп'ютерної графіки, займався крокуючим роботами в Каліфорнійському університеті, а потім працював віце-президентом компанії Sun Microsystems.
 
+
 
+
Самое лаконичное описание объекта предложил Буч: <b>«Объект обладает состоянием, поведением и индивидуальностью».</b>
+

Версія за 22:28, 20 травня 2010

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

Ми будемо розглядати основу ООП на мові C++ та досить схожій на неї мові PHP, іноді Обджект Паскалі (Object Pascal) і Джава (Java) та інші мови.

Мабуть, першим комп'ютерним рішенням, що втілив у собі об'єктний підхід, став програмно-апаратний графічний Планшет (Sketchpad: A Man-Machine Graphical Communications System), що використав обладнання DEC PDP. Його в 1963 р. розробив 25-річний Іван Сазерленд, що допомагав у створенні симуляторів вертольотів військовому науковому агентству DARPA, а потім зайнявся в Массачусетському технологічному інституті докторською дисертацією і мав задоволення спілкування з Клодом Шенноном. За допомогою світлового пера і системи меню, що випадають користувач Планшети міг малювати різні нескладні зображення на дисплеї аналоговому, переміщати їх і точно розташовувати в певних позиціях екрану, а також зберігати. Як поняття класу Сазерленд використовував визначення "майстер", розділяючи опис і реально існуючий на екрані об'єкт (екземпляр "майстри").

Сазерленд також придумав перший прототип нинішніх систем віртуальної реальності, ухитрившись спроектувати зображення з двох моніторів безпосередньо в очі людини (як стереоскопічний фільм), а було це в 1968 р. Спеціальні датчики контролювали положення голови і відповідно змінювали прокручуваний перед очима ролики. Ця людина захистив вісім патентів з комп'ютерної графіки, займався крокуючим роботами в Каліфорнійському університеті, а потім працював віце-президентом компанії Sun Microsystems.