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

Лабораторна робота №18 Пакети

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

Завдання: Нехай у пакеті pack1 визначені три класи: Prot, Deriv і X. Клас Deriv є підкласом класу Prot. Клас Х не є ні підкласом ні суперкласом.

У класі Prot визначені чотири змінні зі всіма можливими правами доступу:

int n=1;

private int n_pri=2;

protected int n_pro=3;

public int n_pub=4;

Класи Deriv і Х використовують всі ці змінні наскльки це можливо.

Нехай у пакеті pack2 визначені два класи Prot2 і Demo. Клас Prot2 є підкласом класу Prot, а клас Demo не залежить від Prot. Ці класи також у міру можливості використовують змінні класу Prot.

Продемонструвати призначення доступа до елементів класу Prot із різними модифікаторами із класів Prot, Deriv, X пакету pack1 і класів Prot2 та Y пакету pack2.

Використовувати клас Prot як головний клас програми з пакету pack1, а клас Demo - як головний клас програми з пакету pack2.

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

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

Пакети служать для ізольованого зберігання класів. Вони розв’язують дві важливі задачі.

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

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

Всі варіанти доступу до членів класу в одному і різних пакетах наведені в таблиці.

Таблиця 1. Варіанти доступу до членів класу

private

Без спеціфікатора

protected

public

Той же клас

Доступний

Доступний

Доступний

Доступний

Підклас в тому ж пакеті

Недоступний

Доступний

Доступний

Доступний

Не підклас в тому ж пакеті

Недоступний

Доступний

Доступний

Доступний

Підклас в іншому пакеті

Недоступний

Недоступний

Доступний

Доступний

Не підклас в іншому пакеті

Недоступний

Недоступний

Недоступний

Доступний

Для створення пойіменованого пакета достатньо на початку файла програми записати оператора

package ім’я пакета;

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

Наприклад, файли, де визначені оператори вигляду package Pack1; усі повинні знаходится в каталозі Pack1.

Є можливість створити ієрархію пакетів. Для цього потрібно записати послідовність імен пакетів, розділених крапками:

package ім’я_пакета[.ім’я_пакета[.ім’я_пакета[…]]];

Наприклад, пакет, визначений як

package level1.level2.level3

має знаходитися в каталозі level1\level2\level3.

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

  1. Для чого призначені пакети?

  2. Що означає висловлювання: «Пакети створюють пространство імен класів»?

  3. Що означає висловлювання: «Пакети обмежують доступ до елементів класу»?

  4. Які варіанти доступу до членів класу з усіма можливими модифікаторами доступу в одному і в різних пакетах?

  5. Як визначається пакет?

  6. Для чого призначений оператор import?

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

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