|
С помощью пакетов вы можете организовывать и структурировать классы, а также определять их взаимоотношения. В этом уроке вы узнаете как добавлять и использовать пакеты. |
Содержание
К этому моменту вы должны уже неплохо ориентироваться в основах языка программирования 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) во всем коде. Этот подход является самодокументирующимся, поэтому он рекомендован для использования в больших приложениях. Вы можете сразу определить, к какому пакету принадлежит каждый класс.
|