Professional Documents
Culture Documents
1. Історія ООП. Основні поняття
1. Історія ООП. Основні поняття
1. Історія ООП
Протягом останніх декількох десятиліть комп'ютерні технології розвивались вражаючими
темпами. Мови програмування також потерпіли значної еволюції. Поява більш потужних
комп'ютерів дала життя більш об'ємним і складним програмам, які, водночас, висвітлювали
нові проблеми в області керування програмами, а також їх подальшому супроводу. Ще у 70-ті
роки такі мови програмування, як С та Pascal, допомогли людству увійти в епоху структурного
програмування, яке на той час відчайдушно потребувало наведення у цій області деякого
порядку. Мова програмування С дала в розпорядження програмістів інструменти, необхідні для
реалізації структурного програмування, а також забезпечила створення компактних, швидко
працюючих програм і можливість адресації апаратних ресурсів (наприклад, можливість
керування портами зв'язку і накопичувачами на магнітних носіях). Ці властивості допомогли
мові С у 80-ті роки дещо домінувати над іншими мовами програмування. В той же час з'явилася
і нова технологія створення та удосконалення програм – об'єктно-орієнтоване програмування
(ООП), втіленням якого стала спочатку мова С++.
Об'єктно-орієнтоване програмування – одна з парадигм програмування, яка розглядає
програму як множину "об'єктів", що взаємодіють між собою. В ній використано декілька
технологій від попередніх парадигм, зокрема наслідування, модульність, поліморфізм та
інкапсуляцію. Незважаючи на те, що ця парадигма з'явилась ще в 1960-тих роках, вона не мала
широкого застосування до 1990-тих. Сьогодні багато мов програмування (зокрема, Java, C#, C+
+, Python, PHP, Ruby та Objective-C, ActionScript 3) підтримують ООП.
Об'єктно-орієнтоване програмування сягає своїм корінням до створення мови
програмування Симула в 1960-тих роках. Разом із тим, як ускладнювалось апаратне та
програмне забезпечення, було дуже важко зберегти якість програм. Об'єктно-орієнтоване
програмування частково розв'язало цю проблему шляхом наголошення на модульності
програми. На відміну від традиційних поглядів, коли програму розглядали як набір підпрограм,
або як перелік настанов комп'ютеру, ООП програми можна вважати сукупністю об'єктів .
Відповідно до парадигми об'єктно-орієнтованого програмування, кожний об'єкт здатний
отримувати повідомлення, обробляти дані, та надсилати повідомлення іншим об'єктам. Кожен
об'єкт – своєрідний незалежний автомат з окремим призначенням та відповідальністю.
Виробнича аналогія. Для кращого розуміння призначення об'єктів, уявімо собі деяку
промислову фірму, яка складається з бухгалтерії, відділу кадрів, відділу реалізації продукції,
відділів головного технолога та головного механіка (рис. 1.2) і т.д. Поділ фірми на відділи є
важливою частиною структурної організації її виробничої діяльності. Для більшості фірм (за
винятком невеликих) в обов'язки окремого співробітника не входить вирішення одночасно
кадрових, виробничих і обліково-бухгалтерських питань. Різні обов'язки чітко розподіляються
між підрозділами, тобто у кожного підрозділу є дані, з якими він працює: у бухгалтерії –
заробітна плата, у відділі реалізації продукції – інформація, яка стосуються торгівлі, у відділі
кадрів – персональна інформація про співробітників, у відділі головного технолога – стан
технологічного процесу виготовлення продукції, у відділі головного механіка – технічний стан
обладнання та устаткування, транспортних засобів і т.д. Співробітники кожного відділу
виконують операції тільки з тими даними, які їм належать.
Структурний поділ обов'язків дає змогу легко стежити за виробничою діяльністю фірми та
контролювати її, а також підтримувати цілісність інформаційного простору фірми. Наприклад,
бухгалтерія несе відповідальність за інформацію, яка стосується нарахування заробітної плати,
сплати податків, здійснення обліку матеріальних цінностей тощо. Якщо у менеджера з
реалізації продукції виникне потреба дізнатися про загальний оклад співробітників фірми за
деякий місяць, то йому не потрібно йти в бухгалтерію і ритися в картотеках; йому достатньо
послати запит бухгалтеру з нарахування заробітної плати, який має знайти потрібну
інформацію, обробити її та надати достовірну відповідь на запит. Така схема організації роботи
фірми забезпечує правильне оброблення даних, а також здійснює їх захист від можливої дії
сторонніх осіб. Подібну структуру зв'язків між відділами фірми та їх виробничими функціями
зображено на рис. 1.2. Аналогічні об'єкти коду програми створюють таку саму її організацію,
яка має забезпечити цілісність її даних, доступ до них і виконання над ними відповідних дій.
ООП – ефективний спосіб організації програми. ООП ніяк не пов'язане з процесом
виконання програми, а є тільки способом її ефективної організації. Велика частина операторів
мови C++ є аналогічною операторам процедурних мов програмування, зокрема мови С. Зовні
функція класу у мові програмування C++ дуже схожа на звичайну функцію мови С, і тільки за
контекстом програми можна визначити, чи є функція частиною структурної С-програми або
об'єктно-орієнтованої програми, написаної мовою C++.
Cписок запитань
1. Назвіть основні властивості ООП.
2. Дайте визначення інкапсуляції.
3. Який процес називається наслідуванням?
4. Дайте визначення поліморфізму.