Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
JavaLab_Sertific.DOC
Скачиваний:
28
Добавлен:
19.08.2019
Размер:
1.06 Mб
Скачать

Лабораторна робота №10 Класи та об'єкти

Мета роботи: отримання практичних навичок програмування задач з використанням класів та об'єктів.

Завдання 1 :

Написати і відлагодити програму, в якій створюється клас для опису товара.

Передбачити об'єктні змінні:

  • name - назва товара;

  • price_w - ціна закупівлі;

  • quantity - кількість товара.

Передбачити методи:

  • setData() - привласнення значень об'єктним змінним;

  • getTotal() - розрахунок загальної вартості товара;

  • print() - метод, який служить для виведення даних на екран;

  • setQuantity() - метод, який дозволяє змінювати кількість товара.

Продемонструвати роботу із створеним класом.

Вигляд екрану працюючого додатку може бути такий:

Основні теоретичні положення:

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

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

Одними з основних понять в об’єктно-орієнтованому програмуванні є поняття класу та об’єкту.

У загальному випадку клас може містити будь-яку кількість даних, названих об’єктними змінними і методів (функцій).

Спрощений синтаксис класу:

class ім’я_класу

{

тип об’єктна_змінна1;

тип об’єктна_зміннN;

тип ім’я_методу1(список_параметрів)

{

тіло_методу

}

тип ім’я_методуN(список_параметрів)

{

тіло_методу

}

}

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

Застосування класу передбачає створення об’єкта цього класу, яке нагадує опис звичайної змінної. Але на відміну від змінної базових типів для об’єкта треба виділити місце у пам’яті та надати усім даним конкретних значень. Якщо об’єкт класа створено, то можна з ним працювати, викликати методи класу, які тепер пов’язані з об’єктом. Звертатися до даних чи методів класу за межами його опису можливо тільки через ім’я класу чи об’єкта. Синтаксис такого звернення наступний:

ім’я_класу.ім’я_даного або ім’я_об’кта.ім’я_даного

ім’я_класу.ім’я_методу() або ім’я_об’кта.ім’я_методу().

Контрольні питання і завдання:

  1. Що таке клас, об'єкт?

  2. Поясніть структуру класу.

  3. Як здійснюється доступ до елементів класу?

  4. Поясніть структуру найпростішої програми Java, яка використовує дані типа клас.

Лабораторна робота №11 Конструктори. Обмеження доступу до елементів класу Передача параметрів методу за значенням

Мета роботи: отримання практичних навичок програмування задач з використанням конструкторів, прав доступу та передачі параметрів методам за значенням.

Завдання: Розробити програму, в якій використовуються два класи. Клас Goods, який описаний в лабораторній роботі №10 и клас Show, який має тільки один член класу – метод showParam():

void showParam(int i,int j)

{

i++;

j--;

}

Продемонструвати використання конструкторів, прав доступу до членів класу та особливість передачі параметрів в метод за значенням.

Вигляд екрана працюючого додатку може бути такий:

Основні теоретичні положення:

Конструктори. Використання методів для ініціалізації об’єктних змінних краще, ніж безпосереднє привласнення значень, але все-таки має недоліки методологічного і практичного характеру. По-переше, об’єкт – це модель чогось в реальному світі, тому краще, коли створення і ініціалізація об’єкта суміщені в часі.

Для усунення вказаних недоліків у мові Java існує спеціальний метод, який називається конструктором. Конструктор виконує ініціалізацію всіх об’ктних змінних.

Передача аргументів за значенням і посиланням. У більшості мов програмування існує два способи передачі аргументу програмі:

  • за значенням;

  • за посиланням.

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

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

У мові Java всі параметри простих типів викликаються за значенням, а параметри-об’єкти викликаються за посиланням.

Обмеження доступу до елементів класу.Однією з основних вимог об’єктно-орієнтованого програмування є обмеження доступу. У мові Java є три спеціфікатори доступу:

  • private;

  • protected;

  • public.

Член класу, помічений спеціфікатором public, доступний скрізь.

Член класу, помічений спеціфікатором private, доступний тільки для членів цього ж класу.

Спеціфікатор доступу protected робить відкритим доступ до членів суперкласу в його підкласах.

Контрольні запитання і завдання:

  1. Для чого| призначені конструктори|? Яким вимогам повинні відповідати конструктори? Які бувають види конструкторів?

  2. Для чого призначені права доступу до членів класу?

  3. Поясніть особливості дії наступних специфікаторів доступу: private, protected, public та доступ за умовчанням.

  4. Які існують засоби передачі параметрів методам в мові Java? Поясніть на прикладах.

  5. Поясніть текст програми.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]