Page 26 - 4657
P. 26

Оператор package

           Перше,  що  може  з'явитися  у  вихідному  файлі  Java  -  це
       оператор  package,  що  повідомляє  транслятору,  у  якому  пакеті
       повинні  визначатись    класи,  що  містяться  в  даному  файлі.
       Пакети  задають  набір  роздільних  просторів  імен,  у  яких
       зберігаються  імена  класів.  Якщо  оператор  package  не
       зазначений,  класи  попадають  у  безіменний  простір  імен,
       використовуване за замовчуванням. Якщо ви повідомляєте клас,
       що як належить визначеному пакету, наприклад,
       package java.awt.image;

           Вихідний код цього класу повинний зберігатися в каталозі
       java/awt/image.
           Зауваження.
           Каталог, що транслятор Java буде розглядати, як кореневий
       для  ієрархії  пакетів,  можна  задавати  за  допомогою  змінної
       оточення    СLASSPATH.  За  допомогою  цієї  змінної  можна
       задати скільки кореневих каталогів для ієрархії пакетів (через ;
       як у звичайному PATH).

            Трансляція класів у пакетах

           При  спробі  помістити  клас  у  пакет,  ви  відразу
       наштовхнетеся на тверду вимогу точного збігу ієрархії каталогів
       з  ієрархією  пакетів.  Ви  не  можете  перейменувати  пакет,  не
       перейменувавши  каталог,  у  якому  зберігаються  його  класи.  Ці
       труднощі видні відразу, але є і менш очевидна проблема.
           Уявіть собі, що ви написали клас з ім'ям PackTest у пакеті
       test.  Ви  створюєте  каталог  test,  поміщаєте  в  цей  каталог  файл
       PackTest.Java  і  транслюєте.  Поки  -  усе  в  порядку.  Однак  при
       спробі  запустити  його  ви  одержуєте  від  інтерпретатора
       повідомлення «can't find class PackTest» («He можу знайти клас
       PackTest»). Ваш новий  клас тепер зберігається в пакеті з ім'ям
       test,  так  що  тепер  треба  указувати  всю  ієрархію  пакетів,
       розділяючи  їхні  імена  крапками  -  test.PackTest.  Крім  того  Вам
       треба або підняться на рівень вище в ієрархії каталогів і знову
       24
   21   22   23   24   25   26   27   28   29   30   31