Sun Java Solaris Communities My SDN Account Join SDN
 
Изучаем язык программирования JavaFX Script

Урок 10: Пакеты

Documentation Distribution Policy  
« Предыдущий 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Следующий »
 
С помощью пакетов вы можете организовывать и структурировать классы, а также определять их взаимоотношения. В этом уроке вы узнаете как добавлять и использовать пакеты.
 
Содержание
 
Выбор названия пакета
Создание каталога
Объявление пакета
Добавление модификаторов доступа
Компиляция кода
Использование класса
 

К этому моменту вы должны уже неплохо ориентироваться в основах языка программирования JavaFX Script. Однако, сейчас ваши исходные файлы пока никак не организованы (вполне вероятно, что вы работаете в одном каталоге, в котором хранится большое количество не связанных между собой примеров). Давайте попробуем улучшить организацию путем добавления пакетов.

Используя пакеты, вы можете группировать код по назначению. Кроме того, в составе пакетов классы получают уникальное пространство имен. Далее на примере пошаговой процедуры мы рассмотрим как поместить класс Address в пакет.

Выбор названия пакета

Перед тем как начать модифицировать код, необходимо выбрать название для создаваемого пакета. Так как класс с названием Address будет использоваться в приложении "адресная книга" (гипотетическое приложение), то в качестве названия пакета возьмем "addressbook".

Создание каталога

Следующим шагом будет создание каталога addressbook в файловой системе. В этом каталоге будут храниться исходные файлы .fx для любых классов, которые будут входить в состав пакета addressbook. Создайте каталог в любом месте на диске. В нашем примере мы создадим /home/demo/addressbook. Обратите внимание, что исходные файлы должны лежать внутри каталога, имя которого совпадает с названием пакета, в нашем случае - addressbook.

Объявление пакета

В каталоге addressbook создайте файл Address.fx. Скопируйте следующий код в этот файл:

package addressbook;

class Address {
     var street: String;
     var city: String;
     var state: String;
     var zip: String;
}
 

Первая строка содержит объявление пакета, таким образом, она обозначает принадлежность класса Address к пакету addressbook. Обратите внимание, что пакет должен быть объявлен в первой строке исходного файла. Один файл может содержать только одно объявление пакета.

Добавление модификаторов доступа

Далее нам необходимо добавить модификатор public для класса Address и его переменных:

package addressbook;

public class Address {
     public var street: String;
     public var city: String;
     public var state: String;
     public var zip: String;
}
 

Этот модификатор - один из пяти доступных модификаторов доступа (access modifiers) Более подробно модификаторы доступа рассматриваются в следующем уроке. Сейчас нам важно знать только то, что модификатор public делает код доступным для других классов и скриптов.

Компиляция кода

Находясь в каталоге addressbook, скомпилируйте исходный файл с помощью команды javafxc Address.fx. (Для больших проектов предусмотрены другие, более сложные способы компиляции различных пакетов; для нашего примера подойдет простой способ компиляции). После компиляции в каталоге появятся файлы с расширением.class.

Использование класса

Мы готовы проверить как работает модифицированный класс Address. Сначала мы должны перейти в каталог верхнего уровня /home/demo. Здесь мы создадим простой скрипт, packagetest.fx, с помощью которого проверим работу пакета addressbook.

Обратиться к модифицированному классу Address можно двумя способами:

// Approach #1

addressbook.Address {
     street: "1 Main Street";
     city: "Santa Clara";
     state: "CA";
     zip: "95050";
}
 

Способ #1 создает объект с однозначно определенным именем класса, где явно указан пакет (в нашем примере addressbook.Address). По сравнению с другими методами этот способ может показаться слишком громоздким, особенно для больших приложений. Тем не менее, знать о его существовании полезно.

// Approach #2
import addressbook.Address;

Address {
     street: "1 Main Street";
     city: "Santa Clara";
     state: "CA";
     zip: "95050";
}
 

В способе #2 используется зарезервированное слово import, которое делает возможным дальнейшее использование краткого имени (Address) во всем коде. Этот подход является самодокументирующимся, поэтому он рекомендован для использования в больших приложениях. Вы можете сразу определить, к какому пакету принадлежит каждый класс.

 
« Предыдущий 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Следующий»
 

Оглавление