Імена пакетів

Імя пакета має використовуватися тільки один раз, так що вибір змістовного та унікального імені становить важливий аспект проектування пакета Однак зараз, коли програмісти всієї планети розробляють пакети на мові Java, неможливо зясувати, які імена пакетів ними використовуються Отже, вибір унікального імені представляє деяку проблему Якщо ви впевнені, що пакет буде використовуватися тільки всередині вашої організації, то можна залучити до справи вибору імені внутрішнього арбітра – це дозволить бути впевненим, що всі пакети матимуть відрізняються імена

Проте в нашому величезному світі такий підхід не спрацює Ідентифікатори пакетів Java представляють собою звичайні імена, так що непоганий спосіб забезпечити їх унікальність – включити в них імя домену організації в Internet Якщо ви працюєте в компанії Magic, Inc, То пакет з атрибутами може бути оголошений таким чином:

package COMmagicattr

Зверніть увагу: компоненти імені слідують у зворотному порядку в порівнянні із звичайним імям домену, а імя домену верхнього рівня (в нашому випадку COM) написано великими літерами Це зроблено для того, щоб уникнути конфліктів з іменами пакетів, які не випливають цією угодою – їх назви можуть випадково співпасти з імям домену верхнього рівня, але навряд чи при цьому вони будуть написані прописними буквами

Якщо ви прямуєте цією угодою, конфлікти виникати не будуть (хіба що всередині вашої організації) Якщо проблеми все ж таки виникли (скажімо, в дуже великій організації), можна піти далі і уточнити імя домену У багатьох великих компаніях є внутрішні домени з іменами east, europe і т д Ви можете уточнити імя

пакета з використанням імені внутрішнього домену:

package COMmagicjapanattr

При цьому імена пакетів можуть стати досить довгими, проте така схема

відносно безпечна – ніхто з тих, хто її використовує, не вибере імя, що збігається з назвою вашого пакета

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

102 Пакетний доступ

Класи і інтерфейси, що входять в пакет, мають одним з двох рівнів доступу: пакетним (package) і відкритим (public) Відкритий клас або інтерфейс доступний для програм, що не входять в пакет Типи, які не є відкритими, мають областю видимості на рівні пакету: вони доступні для всіх програм того ж пакету, але приховані за його межами, у тому числі навіть від програм у вкладених пакетах

Члени класів теж володіють рівнем доступу Член, що не оголошений з ключовим

словом public, protected або private, може використовуватися будь-якою програмою, що входить в пакет, але залишається невидимий за межами пакета Іншими словами, за замовчуванням ідентифікатори володіють пакетним рівнем доступу, за винятком членів інтерфейсів, які є відкритими

Поля або методи, що не оголошені в пакеті з ключовим словом private, доступні для всіх програм цього пакета Отже, класи, що входять до той же пакет, вважаються дружніми, або заслуговують довіри . Однак підпакети не користуються довірою у своїх зовнішніх пакетах Наприклад, захищені і пакетні ідентифікатори

в пакеті dit недоступні для програм у пакеті ditdat і навпаки

Джерело: Арнольд К, Гослінг Д – Мова програмування Java (1997)

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*