Java package
Імена (names) використовуються в програмі для доступу до оголошених (declared) раніше "об'єктів", "елементів", "конструкцій" мови (всі ці слова-синоніми були використані тут в їх загальному сенсі, а не як терміни ООП, наприклад). Конкретніше, в Java є імена:
- пакети;
- класи;
- інтерфейси;
- елементи (member) посилальних типів:
o поля;
o методи;
o внутрішні класи і інтерфейси;
- аргументи:
o методів;
o конструкторів;
o обробників помилок;
- локальні змінні.
Відповідно, всі вони повинні бути оголошені спеціальним чином, що поступово розглядатиметься по ходу курсу. Так само оголошуються конструктори, проте їх ім'я співпадає з ім'ям класу, тому вони не потрапили в цей список. Нагадаємо, що пакети (packages) в Java - це спосіб логічно групувати класи, що необхідний, оскільки часто кількість класів в системі складає декілька тисяч, або навіть десятків тисяч. Окрім класів і інтерфейсів в пакетах, можуть знаходитися вкладені пакети. Синонімами цього слова в інших мовах є бібліотека або модуль.
Імена бувають простими (simple), такими, що складаються з одного ідентифікатора (вони визначаються під час оголошення) і складеними (qualified), такими, що складаються з послідовності ідентифікаторів, розділених крапкою. Для пояснення цих термінів необхідно розглянути ще одне поняття.
У пакетів і посилальних типів (класів, інтерфейсів, масивів) є елементи (members). Доступ до елементів здійснюється за допомогою виразу, що складається з імен, наприклад, пакету і класу, розділених крапкою.
Елементами пакету є класи, що містяться в нім, і інтерфейси, а також вкладені пакети. Щоб отримати складене ім'я пакету, необхідно до повного імені пакету, в якому він розташовується, додати крапку, а потім його власне просте ім'я. Наприклад, складене ім'я основного пакету мови Java - java.lang (тобто просте ім'я цього пакету lang, і він знаходиться в охоплюючому пакеті java). Усередині нього є вкладений пакет, призначений для типів технології reflection, яка згадувалася в попередніх розділах. Проста назва пакету reflect, а значить, складена - java.lang.reflect.