- •«Об'єктно-орієнтоване програмування»
- •Розділ 1.Теоретична частина
- •1.1 Еволюція технології програмування
- •1.2 Відмінності об’єктного та функціонального підходів програмування
- •1.3 Об'єктно-орієнтований підхід
- •1.3.1 Головні поняття і різновиди ооп
- •1.3.5 Поля об'єктів
- •1.3.6 Методи
- •1.3.2 Інкапсуляція
- •1.3.3 Спадкування як найважливіша властивість об'єкта
- •1.3.4 Примірники об'єктних типів
- •1.3.7 Поліморфізм
- •Розділ 2.Аналітична частина
- •2.1 Недоліки ооп
- •2.1.1Критика реклами ооп
- •2.1.2 Оспорювання ефективності розробки методами ооп
- •2.2 Продуктивність об'єктно-орієнтованих програм
- •Розділ 3.Дослідження стану ринку
- •3.1Інтегровані середовища проектування та їх вартість
- •Висновки
- •Список використаної літератури
1.3.2 Інкапсуляція
Об'єкти моделюють характеристики і поведінку елементів світу, в якому ми живемо. Вони є остаточною абстракцією даних.
Об'єкти містять разом всі свої характеристики та особливості поведінки. Відносини частин до цілого і взаємини між частинами стають зрозуміліше тоді, коли все міститься разом в одній упаковці. Це і називається інкапсуляцією.
1.3.3 Спадкування як найважливіша властивість об'єкта
Не менш важливим є і той факт, що об'єкти можуть успадковувати характеристики і поведінку того, що ми називаємо породжують, батьківські об'єкти (або предки). Тут відбувається якісний стрибок: успадкування, можливо, є сьогодні єдиним найбільшим відмінністю між звичайним програмуванням на Паскалі і об'єктно-орієнтованим програмуванням в BorlandPascal.
У термінах Паскаля, об'єкт в чому схожий з записом, яка є оболонкою для об'єднання декількох пов'язаних елементів під одним ім'ям.
Процес, за допомогою якого один тип успадковує характеристики іншого типу, називається спадкуванням. Спадкоємець називається породженим (дочірнім) типом, а тип, якому успадковує дочірній тип, називається що породжує (батьківським) типом. Раніше відомі типи записів Паскаля не можуть наслідувати. Однак BorlandPascal розширює мову Паскаля для підтримки успадкування. Одним з цих розширень є нова категорія структури даних, пов'язана з записами, але значно потужніша. Типи даних у цій новій категорії визначаються за допомогою нового зарезервованого слова об'єкт. Тип об'єкта може бути визначений як повний, самостійний тип в манері опису записів Паскаля, але він може визначатися і як нащадок існуючого типу об'єкта шляхом приміщення, що породжує (батьківського) типу в дужки після зарезервованого слова об'єкт.
Велика частина конструювання об'єктно-орієнтованих прикладних програм полягає в побудові ієрархії об'єктів, що є віддзеркаленням генеалогічного дерева об'єктів в додатках.
Як показали дані визначення, об'єкти тісно пов'язані із записами. Нове зарезервоване слово об'єкт є найбільш очевидним розходженням, але як ми побачимо пізніше, є велика кількість інших відмінностей, деякі з яких досить тонкі.
1.3.4 Примірники об'єктних типів
Примірники об'єктних типів описуються в точності так само, як в Паскалі описується будь-яка змінна, або статична, або покажчик, який посилається на розміщену в динамічної пам'яті змінну.
1.3.5 Поля об'єктів
Ми можемо звернутися до поля об'єкта в точності так само, як до поля звичайного запису, або за допомогою оператора с, або шляхом уточнення імені за допомогою точки.
1.3.6 Методи
Навіть якщо ми можемо звернутися до полів об'єкта безпосередньо, це буде не зовсім хорошою ідеєю. Принципи об'єктно-орієнтованого програмування вимагають, щоб поля об'єктів були виключені з вихідного коду, наскільки це можливо. Це обмеження спочатку може здатися спірним і жорстким, але воно є лише частиною величезної картини об'єктно-орієнтоване програмування.
Відповідь полягає в тому, що при всякій нагоді для доступу до полів даних повинні використовуватися методи об'єкта. Метод є процедурою або функцією, описаної всередині об'єкту і жорстко обмеженою цим об'єктом.
Методи є одними з найбільш примітних атрибутів об'єктно-орієнтованого програмування і вимагають деякої практики перед використанням.
Метод - це процедура або функція, об'єднана з даним типом настільки тісно, що метод є ніби оточеним невидимим оператором с, що робить примірник даного типу доступними зсередини для методу. Визначення типу включає заголовок методу. Повне визначення методу кваліфікується в імені типу. Тип об'єкту і метод об'єкта є двома особами цієї нового різновиду структури, іменованої методом.
Одним з найважливіших принципів об'єктно-орієнтованого програмування є те, що програміст під час розробки програми повинен думати про код і про дані спільно. Ні код, ні дані не існують у вакуумі. Дані управляють потоком коду, а код маніпулює образами і значеннями даних.
Якщо наш код і дані є розділеними елементами, то завжди існує небезпека виклику правильної процедури з невірними даними або помилковою процедури з правильними даними. Турбота про збіг цих елементів покладається на програміста, і хоча сувора типізація Паскаля тут допомагає, найкраще, що він може зробити - це вказати на невідповідність.
Об'єкт здійснює синхронізацію коду і даних шляхом спільної побудови їх описів. Реально, щоб отримати значення одного з полів об'єкта, ми викликаємо що відноситься до цього об'єкта метод, який повертає значення потрібного поля. Щоб привласнити полю значення, ми викликаємо метод, який призначає даному полю нового значення.
Однак, BorlandPascal не примушує нас робити це. Як всяке структурне програмування, об'єктно-орієнтоване програмування є дисципліною, яку ми повинні нав'язати собі, використовуючи надані мовою кошти. BorlandPascal дозволяє нам звертатися до полів об'єкта безпосередньо ззовні об'єкта, однак він заохочує нас використовувати переваги об'єктно-орієнтованого програмування та створювати методи для маніпулювання полями об'єкта всередині самого об'єкта.
Отже, підіб'ємо деякі підсумки. Що таке об'єкт?
Об'єкт складається з структури даних та пов'язаних з нею процедур (які називаються методами), які працюють з даними, записаними в примірниках структури даних.
Об'єкт може успадковувати характеристики породжує об'єкта. Це означає, що структура даних нового об'єкта включає структуру даних породжує об'єкта, а також нові дані. Крім того, новий об'єкт може викликати всі процедури породжує об'єкта, а також ті процедури методів, які в ньому описуються.
Об'єкт, який не має наслідування, називається базовим об'єктом. Об'єкт, що успадковує характеристики інших об'єктів, називається породженим або похідним об'єктом.
