Малюнок 1 - Об'єкт - екземпляр
Важливо мати на увазі, що об'єктна нотація не передбачає в позначенні об'єкта особливого «відділення» для переліку операцій, які може виконувати об'єкт-екземпляр. Це пов'язано з тим, що операції, що виконуються всіма реалізованими об'єктами, ідентичні, і тому зберігати їх в кожному об'єкті-екземплярі було б накладно. Операції можна зберігати в об'єкті-класі або ж можна зв'язати їх з реалізованими об'єктами іншими засобами (реалізованими в ПО базової об'єктно-орієнтованої системи).
Перевір себе
Даний посібник допомагає почати вивчення ООП. Важливо закласти міцний фундамент, і даний навчальний посібник може допомогти в цьому.
Які парадигми програмування сьогодні широко відомі?
Структурний (процедурне) програмування;
Об'єктно - орієнтоване програмування.
У чому сутність об'єктно-орієнтованого підходу до програмування?
Основні ідеї об'єктно-орієнтованого підходу спираються на наступні положення:
Програма представляє собою модель деякого реального процесу, частини реального світу.
Модель реального світу або його частини може бути описана як сукупність взаємодіючих між собою об'єктів.
Об'єкт описується набором параметрів, значення яких визначають стан об'єкта, і набором операцій (дій), які може виконувати об'єкт.
Взаємодія між об'єктами здійснюється посилкою спеціальних повідомлень від одного об'єкта до іншого. Повідомлення, отримане об'єктом, може вимагати виконання певних дій, наприклад, зміни стану об'єкта.
Об'єкти, описані одним і тим же набором параметрів і здатні виконувати один і той же набір дій являють собою клас однотипних об'єктів.
Таким чином, об'єктно-орієнтований підхід передбачає, що при розробці програми повинні бути визначені класи які у програмі об'єктів і побудовано їх опису, потім створені екземпляри необхідних об'єктів і визначено взаємодію між ними.
Як ви розумієте терміни Клас? Об'єкт? Властивість? Поведінка?
Клас - це опис групи об'єктів. Об'єкт - це реальний представник певного класу. Властивість - це характеристика об'єкта. Поведінка - це набір дій, які може виконувати об'єкт.
У чому сутність об'єктно-орієнтованого підходу до програмування?
Програма представляє собою модель деякого реального процесу, частини реального світу.
Модель реального світу або його частини може бути описана як сукупність взаємодіючих між собою об'єктів.
Взаємодія між об'єктами здійснюється посилкою спеціальних повідомлень від одного об'єкта до іншого.
Яку сутність можна назвати об'єктом?
Кожен об'єкт має:
ім'я об'єкта (унікальність);
стан (сукупність властивостей);
Що таке Властивість об'єкта?
Це його характеристика або ознака
Що називається Станом об'єкта?
Стан об'єкта характеризується переліком всіх властивостей об'єкта і поточними значеннями кожного з цих властивостей
Методи (methods) - це функції (процедури), що належать класу.
Як ви розумієте термін «message»?
Повідомлення (message) - це практично те ж саме, що і виклик функцій в звичайному програмуванні. В ООП зазвичай вживається вираз "послати повідомлення" будь-якого об'єкта. Поняття "повідомлення" в ООП можна пояснити з точки зору основ ООП: ми не можемо безпосередньо змінити стан об'єкта і повинні як би послати повідомлення об'єкту, що ми хочемо так і так змінити його стан. Об'єкт сам змінює свій стан, а ми тільки його просимо про це, посилаючи повідомлення.
Як ви розумієте поведінку об'єкта (behavior)?
Для кожного об'єкта існує певний набір дій, які з ним можна зробити.
Щоб ви могли краще розібратися в досліджуваному матеріалі, дайте відповідь на запропоновані запитання. Відповіді містяться в брошурі «Рішення і обговорення»
Що таке процедурне програмування?
Якими перевагами володіє процедурне програмування в порівнянні з неструктурних програмуванням?
Що таке модульне програмування?
Якими перевагами володіє модульне програмування в порівнянні з процедурним програмуванням?
Перерахуйте недоліки процедурного і модульного програмування.
Що таке об'єктно - орієнтоване програмування?
Які шість переваг і цілей об'єктно - орієнтованого програмування?
Поясніть одну з цілей об'єктно-орієнтованого програмування.
Дайте визначення наступних термінів: клас, об'єкт, поведінка.
Як об'єкти обмінюються інформацією?
Питання для самостійної роботи
(Необхідно набрати не менее6 балів)
Як ви зрозуміли, об'єктно-орієнтований підхід до програмування - це простіше для програміста або складніше? (1 бал)
Якщо складніше, то навіщо нам потрібен ООП? Які проблеми з його допомогою можна вирішити? (1 бал)
Назвіть головну ідею ООП. (1 бал)
Поясніть, чи гарантує використання об'єктно-орієнтованої мови побудова об'єктно-орієнтованого проекту? (1 бал)
У чому проблема качкодзьоба? (1 бал)
Як ви розумієте стан об'єкта? Поведінка об'єкта? (1 бал)
До якого класу належить об'єкт b1: Book? (1 бал)
Вправи для самостійної роботи
(Необхідно набрати не менее6 балів)
Намалюйте ієрархію класів: стіл, стілець, шафа-купе, журнальний столик, меблі, диван, комп'ютерний стіл, пральна машина, крісло, буфет, шифоньєр. Яке поняття тут зайве? Чому? (2 бали)
Опишіть поведінку об'єкта Іванко. представленого на мові UML: (1 бал)
Намалюйте ієрархію класів: кішки, шиншили, хори, папуги, Кенаря, щиглики, крокодильчики, земноводні та інші види. Додайте поняття, якщо потрібно. (2 бали)
Опишіть на мові UML об'єкт для ІС книгарні: книга «Маленький принц» Антуана де Сент Екзюпері, кількість сторінок 92, продана. (1 бал)
Опишіть стан об'єкта, представленого на мові UML в інформаційній системі «Медогляд»: (1 бал)
Опишіть стан і поведінку об'єкта, представленого на мові UML: (2 бали)