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