Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Car alfaRomeo156, fordFocus, fiat500;

Protected Master person; | Public double f(double x) | Abstract void voice(); | КОНСТРУКТОРИ КЛАСУ | Private static int number; | Return new Complex(x - z.x, y - z.y); | ЛАБОРАТОРНЕ ЗАВДАННЯ |


МЕТА РОБОТИ

Ознайомитися із сучасною парадигмою програмування — об’єктно-орієнтованим програмуванням і реалізацією цієї парадигми в мові Java. Розібратися із правилами запису класів і вивчити їхні додаткові можливості.

2.КОРОТКІ ТЕОРЕТИЧНІ ВІДОМОСТІ

2.1. ПРИНЦИПИ ОБ’ЄКТНО-ОРІЄНТОВАНОГО ПРОГРАМУВАННЯ

 

Об’єктно-орієнтоване програмування розвивається уже більше двадцати років. Існує декілька шкіл, кожна з яких пропонує свій набір принципів роботи з об’єктами і по-своєму викладає ці принципи. Але є декілька загальноприйнятих понять. На даній лабораторній роботі ми їх вивчемо.

2.1.1. Абстракція

Описуючи поведінку будь-якого об’єкта, наприклад автомобіля, ми будуємо його модель. Модель, як правило, не може описати об’єкт повністю оскільки реальні об’єкти досить складні. Приходиться відбирати лише ті характеристики об’єкта, які є важливими для розв’язання поставленої перед нами задачі. Для опису вантажоперевезень важливою характеристикою буде вантажопідйомність автомобіля, а для опису автомобільних перегонів вона є несуттєвою. Для моделювання перегонів обов’язково необхідно описати метод набирання швидкості даною автівкою, а для вантажоперевезеннь це не важливо.

Ми повинні абстрагуватися від деяких конкретних деталей об’єкта. Дуже важливо вибрати правильну степінь абстракції. Поверхнева степінь дасть лише приблизний опис об’єкта, не дозволить правильно моделювати його поведінку. Глибока степінь абстракції зробить модель надто складною, перевантаженою деталями, і тому непридатною.

Наприклад, можна цілком точно предбачити погоду на завтра у певному місці, але розрахунки за такою моделлю триватимуть три доби навіть на найпотужнішому комп’ютері. Модель, що запізнюється на два дні нікому не потрібна. Точність моделі, якою користуються синоптики, всім відома. Поте розрахунки за нею займають всього декілька годин.

Опис кожної моделі робиться у вигляді одного або декількох класів (classes). Клас можна вважати проектом, зліпком, кресленням, за яким потім будуть створюватися конкретні об’єкти. Клас містить опис змінних і констант, які характеризують об’єкт. Вони називаються полями класу (class fields). Процедури, які описують поведінку об’єкта, називаються методами класу (class methods). Всередині класу можна описати і вкладені класи (nested classes) і вкладені інтерфейси. Поля, методи і вкладені класи першого рівня є членами класу (class members). Різні школи об’єктно-орієнтованного програмування пропонують різні терміни. На лабораторному практикумі ми використовуватимемо термінологію, прийняту в технології Java.

Ось зразок опису автівки:

class Car {

int maxVelocity; // Поле, що містить найбільшу швидкість автівки

int speed; // Поле, що містить поточну швидкість автівки

int weight; // Поле, що містить вагу автівки

// Інші поля...

void moveTo(int x, int у){ // Метод, що моделює переміщення автівки. Параметри х і у — не поля

int а = 1; // Локальна змінна — не поле

// Тіло метода. Тут описується закон переміщення автівки у точку (х, у)

}

// Інші методи...

}

 

Після того як опис класу завершено, можна створювати конкретні об’єкти, eкземпляри(instances) описаного класу. Створення екземплярів відбувається у три етапи, подібно до опису масивів. Спочатку оголошуються посилання на об’єкти: записується назва класу, і через пробіл перераховуються екземпляри класу, точніше, посилання на них.

Car alfaRomeo156, fordFocus, fiat500;

Потім операцією new визначаються самі об’єкти, під них виділяється оперативна пам’ять, посилання отримує адресу цієї частини пам’яті в якості свого значення.

alfaRomeo156= new Car();

fordFocus = new Car();

fiat500 = new Car();

 

На третьому етапі відбувається ініціалізація об’єктів, задаються початкові значення. Цей етап, як правило, суміщається з другим, якраз для цього в операції new повторяється назва класу з дужками Car (). Це так званий конструктор (constructor) класу.

Оскільки назви полів, методів і вкладених класів у всіх об’єктах одинакові, вони задані в описі класу, їх треба уточняти назвою посилання на об’єкт:

alfaRomeo156.maxVelocity = 250;

fordFocus.maxVelocity = 180;

fiat500.maxVelocity = 150;


Дата добавления: 2015-11-14; просмотров: 96 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Протокол наблюдений| Fiat500.moveTo(35, 120);

mybiblioteka.su - 2015-2024 год. (0.007 сек.)