- •Лабораторна робота №1 Інтегроване середовище Net Beans. Розробка лінійної програми
- •Лабораторна робота №2 Застосування командного рядка для компіляції і запуску Java-програм
- •Лабораторна робота №3 Програмування обчислювальних процесів з розгалуженням
- •Лабораторна робота №4 Циклічні конструкції мови Java
- •Лабораторна робота №5 Програми, які реалізують розгалуження. Оператор switch
- •Лабораторна робота №6 Розробка програм, які застосовують оператори переходу. Оператор continue
- •Лабораторна робота №7 Розробка програм, які застосовують оператори переходу. Оператор break
- •Лабораторна робота №8 Розробка програм, які застосовують одновимірні масиви
- •Лабораторна робота №9 Розробка програм, які застосовують двовимірні масиви
- •Лабораторна робота №10 Класи та об'єкти
- •Лабораторна робота №11 Конструктори. Обмеження доступу до елементів класу Передача параметрів методу за значенням
- •Лабораторна робота №12 Статичні дані та методи
- •Лабораторна робота №13 Спадкування
- •Лабораторна робота №14 Спадкування. Поліморфізм
- •Лабораторна робота №15 Абстраткні класи
- •Лабораторна робота №16 Реалізація інтерфейсу
- •Лабораторна робота №17 Спадкоємство інтерфейсів. Реалізація в одному класі декількох інтерфейсів. Змінні інтерфейса
- •Лабораторна робота №18 Пакети
- •Лабораторна робота №19 Обробка виняткових ситуацій. Принцип обробки
- •Лабораторна робота №20 Обробка виняткових ситуацій. Створення власних класів виняткових ситуацій
- •Лабораторна робота №21 Зображення геометричних фігур. Управління кольором
- •Лабораторна робота №22 Виведення тексту
- •Лабораторна робота №23 Управління компоновкою
- •Лабораторна робота №24 Обробка подій, пов’язаних з кнопкою
- •Лабораторна робота №25 Обробка подій, пов’язаних з клавіатурою
- •Література
Лабораторна робота №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.
Контрольні запитання і завдання:
Для чого призначені пакети?
Що означає висловлювання: «Пакети створюють пространство імен класів»?
Що означає висловлювання: «Пакети обмежують доступ до елементів класу»?
Які варіанти доступу до членів класу з усіма можливими модифікаторами доступу в одному і в різних пакетах?
Як визначається пакет?
Для чого призначений оператор import?
Поясніть текст програми.