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

Урок 3: Использование объектов

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

Что такое объект? Объект - это самостоятельный элемент программы, характеризуемый состоянием и поведением. Говоря в общем:

  • Состояние объекта выражается через переменные
  • Поведение объекта выражается через функции

C помощью объекта можно смоделировать всё, что угодно, начиная с элементов графического интерфейса (кнопки, флажки, текстовые метки), заканчивая такими абстракциями как данные о температуре, финансовые записи, информация о регистрации.


Примечание: Для более подробной информации о понятии объекта, читайте урок What is an Object, в курсе The Java Tutorials.

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

В языке JavaFX Script объект создается с помощью литерала объекта.

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

Мы создали объект Address, который используется в воображаемом приложении, имитирующем адресную книгу. Чтобы скомпилировать эту программу, сохраните код в файл AddressBook.fx, скачайте архив Address.zip и извлеките 2 файла с расширением .class из архива. (В архиве также содержится файл AddressBook.fx.)


Примечание: В файлах Address.class (Address.class и Address$Intf.class) содержится информация, необходимая компилятору для создания объектов типа Address. Изначально, мы создали файл Address.fx и определили в нем класс Address, затем скомпилировали его и получили Address.class. Язык JavaFX Script, также как и в язык Java, содержит большое количество встроенных файлов типа .class, которые можно применять при разработке программ. Это позволяет создавать объекты для решения широкого спектра задач, включая разработку графического интерфейса со сложными визуальными эффектами. Подробнее о том, как создавать свои классы, мы расскажем в уроке Создание классов. Пока же, для демонстрации таких примеров как этот, мы просим вас скачать и использовать готовые .class файлы.

Скомпилируйте скрипт: javafxc AddressBoox.fx. Программа не имеет выходных данных, но тот факт, что она скомпилировалась, указывает на успешное создание объекта.


Примечание: Говоря техническим языком, переменные в данном примере называются переменными экземпляра класса. Переменные экземпляра - это набор встроенных атрибутов, которыми располагает каждый объект. Вообще, термин "атрибут" уже использовался в ранних версиях языка (его еще можно случайно встретить в документах и демонстрационных программах). В мире объектно-ориентированного программирования термины "экземпляр класса " и "объект" являются синонимами, отсюда и понятие переменной экземпляра.
Синтаксис литерала объекта

Синтаксис литерала объекта прост и его легко запомнить. Первое слово (в примере ниже это Address) определяет тип объекта, который вы создаете. Открывающие и закрывающие фигурные скобки содержат тело объекта. Остальные слова (street, city, state, zip) инициализируют переменные экземпляра класса.

Этим способом можно создать несколько объектов, например:

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

Address {
     street: "200 Pine Street";
     city: "San Francisco";
     state: "CA";
     zip: "94101";
}
 

Примечание: При объявлении литерала объекта, переменные экземпляра можно разделять запятыми, пробелом или точкой с запятой. Объявление ниже корректно:

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

Address {
     street: "200 Pine Street",
     city: "San Francisco",
     state: "CA",
     zip: "94101",
}
 

В уроках в основном используется точка с запятой. Точку с запятой необходимо ставить при объявлении функции.


Вы также можете объявлять созданные объекты в качестве переменных, чтобы в дальнейшем их можно было использовать в программе::

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

def addressTwo = Address {
     street: "200 Pine Street";
     city: "San Francisco";
     state: "CA";
     zip: "94101";
}
 

Вы также можете вкладывать один объект в другой объект:

def customer = Customer {
     firstName: "John";
     lastName: "Doe";
     phoneNum: "(408) 555-1212";
     address: Address {
          street: "1 Main Street";
          city: "Santa Clara";
          state: "CA";
          zip: "95050";
     }
}
 

В данном примере в объекте Customer объявляется несколько новых переменных. Также, в переменной address содержится уже известный объект Address. Структура вложенных объектов очень распространена и показывает как программист (или среда разработки) форматирует код, используя отступы, когда один объект вложен в другой. С помощью отступа переменные объекта Address визуально отделяются от переменных объекта Customer. Чтобы скомпилировать этот пример, скачайте архив Customer.zip, распакуйте содержимое, поместите все файлы в одну директорию и используйте стандартную команду для компиляции.

Вызов функций

В языке JavaFX Script многие классы характеризуются определенным поведением. Это поведение реализуется с помощью функций объектов. Подробно написание функций для объектов будет рассмотрено в уроке Создание классов. Сейчас мы только покажем как использовать встроенные функции.

Функция экземпляра вызывается с помощью структуры следующего вида: имя переменной (в данном случае customer), далее следует точка ("."), и затем функция, которую вы хотите вызвать:

def customer = Customer {
     firstName: "John";
     lastName: "Doe";
     phoneNum: "(408) 555-1212"
     address: Address {
          street: "1 Main Street";
          city: "Santa Clara";
          state: "CA";
          zip: "95050";
     }
}

customer.printName();
customer.printPhoneNum();
customer.printAddress();
 

В результате вы получите следующие выходные данные:

Name: John Doe
Phone: (408) 555-1212
Street: 1 Main Street
City: Santa Clara
State: CA
Zip: 95050
 

Вы спросите: "Откуда все эти функции? Как понять, какие переменные и функции есть у экземпляра класса (объекта)?". При использовании библиотеки или класса, рекомендуется обращаться к спецификации языка (API документации) . Спецификация - это формализованный список переменных и функций объекта. Обращение к документации - единственный способ убедиться, что объект располагает необходимой функциональностью. Вы научитесь пользоваться такого рода документацией в следующих уроках, когда начнете разрабатывать графические приложения.

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

Оглавление