- •Тема 1. Вступ до дисципліни
- •Тема 2. Управління ходом дій операторів програми
- •Тема 3. Ініціалізація та завершення дії змінних
- •Тема 4. Реалізація і специфікатори доступу
- •Тема 5. Успадкування в Java та його особливості
- •2. Розробка програмних систем складної структури
- •Тема 10. Створення вікон і аплетів
- •Тема 11. Розподільне програмування
- •1. Вступ до мовного середовища. Ознайомлення з мовним середовищем. Початкові відомості про мовне середовище java
- •1.1. Виконання Java-програми
- •Питання і завдання
- •1.4. Інтегроване середовище jBuilder
- •2. Постулати об'єктно-орієнтованого програмування
- •2.1. Модель і абстракція
- •2.2. Ієрархія та успадкування
- •2.4. Класи, їх структура та зміст
- •3. Управління ходом дії операторів програми
- •Питання і завдання
- •4.1. Ініціалізація за допомогою конструктора
- •4.2. Конструктор без параметрів
- •4.3. Перевантаження методів
- •4.4. Ініціалізація членів класу
- •5. Реалізація
- •6. Успадкування в java та його особливості
- •Завдання для самостійного опрацювання теми
- •7. Динамічне зв'язування (поліморфізм)
- •Завдання для самостійного опрацювання теми
- •8. Інтерфейси та внутрішні класи
- •Завдання для самостійного опрацювання теми
- •9. Обробка помилок і виключних ситуацій
- •Завдання для самостійного опрацювання теми
- •10. Система вводу/виводу в java
- •Завдання для самостійного опрацювання теми
- •Програма DirList.Java
- •11. Створення вікон і аплетів
- •Завдання для самостійного опрацювання теми
- •12. Створення додатків windows
- •12.1. Сім'я операційних систем Windows
- •12.2. Структура додатка Windows
2. Постулати об'єктно-орієнтованого програмування
Модель і абстракція.
Ієрархія та успадкування.
Відповідальність та модульність.
Класи, їх структура та зміст
2.1. Модель і абстракція
В основу сучасної парадигми об'єктно-орієнтованого програмування (ООП) покладено розбиття програми на модулі так, щоб вона перетворилася на сукупність об'єктів, що взаємодіють. Ідея ООП почала активно розвиватися і привела до появи нових напрямків: об'єктно-орієнтованого аналізу (ООА) і об'єктно-орієнтованого програмування.
Для ООП існує кілька загальноприйнятих понять: абстракція, ієрархія, відповідальність, модульність тощо. Визначення цих понять достатньо повно описано в [1]. Перелічені поняття разом з такими поняттями як клас, об'єкт, методи, інтерфейси, конструктори, становлять основу ООП.
Відомо, що для опису поводження будь-якого об'єкта будується модель цього об'єкта. Опис кожної моделі виконується у вигляді одного або кількох класів (classes). Клас слід розглядати як проект, каркас для створення конкретних об'єктів. Клас містить опис змінних і констант кожного об'єкта — поля класу (class fields). Процедури, які описують поводження об'єкта, називаються методами класу (class methods). Усередині класу можна описати і вкладені класи, і вкладені інтерфейси. Поля, методи і вкладені класи першого рівня є членами класу (class members).
Наприклад, [4, с. 69] опис автомобіля:
class Automobile {
int maxVelocity; II поле, яке містить максимальну швидкість автомобіля
int speed; //поле, яке містить поточну швидкість автомобіля int weight; //поле, яке містить вагу автомобіля // інші поля...
voidmoteTo (int x, inty) {//метод, який моделює рух автомобіля
//х тау — параметри, але не поле int a = 1; //локальна зміна
//тіло методу. Тут описується рух автомобіля в полі
. }. //інші методи...
Зауваження. У мові Java немає вкладених процедур-функцій. Тому всередині методу не можна описати інший метод.
Після закінчення опису класу створюються конкретні об'єкти (примірники) описаного класу. Це відбувається в три етапи.
1. Оголошуються посилання на об'єкти; записується ім'я кла су і через пропуск перелічуються примірники класу, точніше по силання на них:
Automobile Ford Sierra Oka HondaCivic;
2. За допомогою операції new визначаються самі об'єкти, для них виділяється пам'ять, посилання отримує адресу цієї ділянки як своє значення:
Ford Sierra = new Automobile(); Oka = new Automobile(); HondaCivic = new Automobile();
3. Відбувається ініціалізація об'єктів, установлюються почат кові значення. Цей етап, як правило, сумісний з другим. Про це свідчить ім'я класу з дужками в операції new-Automoblle() (конст руктор класу).
Оскільки імена полів методів і вкладених класів у всіх об'єктів однакові (їх задано в опису класу), то такі імена потрібно уточнювати ім'ям посилання на об'єкт:
Ford Sierra.MaxVelocity = 180;
Ока. MaxVelocity = 150;
HondaCivic. MaxVelocity = 200;
HondaCivic. MoteTo (35,120).
У багатьох ситуаціях будують кілька моделей із різними варіантами деталізації. Наприклад, для конструювання «накидки» потрібна менш точна модель контурів, ніж для конструювання «фраку».
Питання і завдання
1. Визначити поняття абстракції:
абстракція сутності об'єкта;
абстракція поводження;
довільна абстракція.
Що таке бартер абстракції?
Модель і абстракція.