ОБЛАСТЬ ВИДИМОСТІ – JAVA ДЛЯ ANDROID

&nbsp

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

Пакети Java

Пакети Java надають механізм, що дозволяє групувати взаємоповязані типи в універсально-унікальному просторі імен Таке групування не допускає конфліктів між ідентифікаторами, існуючими в просторі імен пакету, і ідентифікаторами, створеними і використовуваними іншими розробниками в інших просторах назв

Типова програма Java складається з коду, взятого з безлічі дерев пакетів (безліч несуміжних дерев також називається forest – «ліс») Стандартна середовище часу виконання Java підтримує такі пакети, як Java 1 ang і Java uti 1 Крім того, програма може залежати від інших поширених бібліотек, наприклад бібліотек з дерева org apache За традицією код додатку (тобто створюваний вами код) потрапляє в пакет, чиє імя являє собою запис назви вашого домену навпаки, до якої потім додається назва програми Отже, якщо ваш домен називається androidhero com, то корінь дерева пакетів називатиметься com androidhero, а сам код розташується в пакетах з назвами типу com androidhero awesomeprogram і com androidhero geohottness service Компонування типового пакета програми для Android може містити пакет для довготривалого зберігання інформації, пакет для користувача інтерфейсу, а також пакет для логіки додатка або код контролера

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

Для оголошення класу як входить до складу пакета в першому рядку файлу, що містить визначення класу, ставиться ключове слово package:

Не намагайтеся скоротити імя пакета Оскільки зроблена нашвидкуруч тимчасова реалізація деколи зберігається роками, уявіть собі, як надовго може стати вашим головним болем пакет, імя якого виявиться неунікальним

У деяких великих проектах використовуються зовсім різні домени першого рівня, що дозволяють відокремлювати один від одного пакети з загальнодоступними (публічними) АРІ від пакетів, які реалізують ці API Наприклад, інтерфейс програмування додатків Android використовує пакет верхнього рівня android, а класи реалізації (implementation classes) зазвичай знаходяться в пакеті com android Вихідний код мови Java від компанії Sun організований за схожим принципом Загальнодоступні інтерфейси програмування додатків розташовуються в пакеті Java, а код реалізації – в пакеті sun У будь-якому випадку додаток, що імпортує пакет реалізації, явно робить щось ненадійне і потрапляє в залежність від коду, що не відноситься до загальнодоступних API

У той час як, в принципі, існує можливість додавати код у вже наявні пакети, це зазвичай вважається хибною практикою Взагалі, пакет є не лише простором імен, а й деревом, що йде від одного джерела як мінімум до зворотного доменного імені Це всього лише неписане правило, але розробник Java вважає, що в джерелі пакета combrashandroid coolappui він знайде код користувальницького інтерфейсу додатку СооІАрр для Android І розробник буде неприємно здивований, якщо йому доведеться шукати другу частину початкових кодів в іншому пакеті

Про пакетах Java докладніше розказано в керівництві по цій мові: http:// downloadoraclecom / javase / tutorial / java / package / packageshtml

Джерело: Android Програмування на Java для нового покоління мобільних пристроїв

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


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

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

Ваш отзыв

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

*

*