Перше, що може з’явитися в початковому файлі Java-програми – оператор package, який інформує компілятор, у якому пакеті повинні визначатися класи, що містяться в даному файлі. Пакети задаються набір роздільних просторів імен, в яких зберігаються імена класів. Якщо оператор package не вказано, класи потрапляють в безіменний простір імен, який використовується за замовчанням.
Якщо в програмі оголошено клас, що належить певному пакету, наприклад:
package java.awt.image;
то і вихідний код цього класу має зберігатися в каталозі java/awt/image. Існує жорстка вимога точної відповідності ієрархії каталогів ієрархії пакетів. Не можна переіменувати пакет без переіменування каталогу, в якому зберігаються його класи.
Оператор import
Після оператора package, але до будь-якого визначення класів в початковому файлі з Java-програмою, може бути присутнім список операторів import. Пакети є зручним механізмом відокремлення класів один від одного, тому всі вбудовані в Java класи зберігаються в пакетах.
Загальна форма оператора import така:
|
|
import пакет1[.пакет2].(ім’я_класа | *);
тут пакет1 – ім’я пакету верхнього рівня, пакет2 – це необов’язкове ім’я пакету, вкладеного в перший пакет і відокремлене крапкою.
Після задання шляху в ієрархії пакетів вказується або ім’я класу, або мета символ зірочка. Зірочка означає, що якщо Java-компілятору буде потрібно який-небудь клас, для якого пакет не вказано явно, він повинен переглянути весь вміст пакету із зірочкою замість імені класу.
У наведеному нижче фрагменті коду показано обидві форми застосування оператора import:
import java.util.Date;
import java.io.*;
Всі вбудовані в Java класи, які входять до комплекту поставки, зберігаються в пакеті з ім’ям java. Базові функції мови зберігаються у вкладеному пакеті java.lang. Весь цей пакет автоматично імпортується транслятором у всі програми. Це еквівалентно розміщенню на початку кожної програми оператора import java.lang.*;