Пример создания объекта: добавление животного в зоопарк ActionScript

 

 

Теперь, когда нам известно, как создавать объекты, мы можем добавить объект 

класса VirtualPet в нашу программу по созданию виртуального зоопарка.  

Следующий код делает именно это: 

package zoo { 

public class Virtual Zoo { 

public function Virtual Zoo ( ) { 

61 
new Virtual Pet 
Обратите внимание, что в этом коде обращение к классу VirtualPet происходит 
не по его уточненному имени zoo. VirtualPet, а по имени VirtualPet,  
являющемуся неуточненным, поскольку код из определенного пакета может обращаться 
к классам этого пакета по их неуточненным именам. 
Однако код не может обращаться к классам в других пакетах. Чтобы получить 
доступ к открытому классу в другом пакете, необходимо использовать директиву 
import, которая записывается в следующем общем виде: 
impo rt имяПаке та.ИмяКласса; 
В приведенном коде им я Па кета — это имя пакета, которому принадлежит класс, а Имя - 
Класса — это имя открытого класса, который должен быть использован. Если  
указанный класс не является открытым, то его невозможно будет импортировать,  
поскольку классы, не являющиеся открытыми, не могут быть использованы за пределами 
пакета, которому принадлежат. Как только класс будет импортирован в программу, 
к нему можно обращаться по его неуточненному имени. Например, чтобы создать 
экземпляр предопределенного класса flash. media. Sound (который используется 
для загрузки и воспроизведения звуковых файлов), используется следующий код: 
import flash.media.Sound 
new Sound 
Если импортировать класс на уровне пакета, то он будет доступен из любого 
места кода, принадлежащего телу пакета. Например, в следующем коде класс 
flash .media. Sound импортируется на уровне пакета, а затем создается  
экземпляр класса Sound в методе-конструкторе VirtualZoo: 
package zoo { 
import flash,media.Sound 
public class VirtualZoo { 
public function VirtualZoo ( ) { 
new Sound 
В случае возникновения конфликта между неуточненными именами классов для 
них необходимо использовать уточненные имена. Например, если собственный 
класс Sound описан в пакете zoo, обязательным является использование  
следующего кода, создающего экземпляр предопределенного класса flash. media. Sound 
(обратите внимание на использование уточненного имени): 
new flash.media.Sound 
Для создания же экземпляра класса Sound из пакета zoo нам бы пришлось  
использовать следующий код: 
new zoo.Sound 
Использование неуточненного имени класса (то есть Sound) само по себе приводит 
к ошибке, которая не позволяет откомпилировать программу. Ошибки, которые 
препятствуют компиляции, называются ошибками этапа компиляции. 
Чтобы получить доступ ко всем открытым классам в другом пакете, необходимо 
использовать следующий обобщенный код: 
import имяПакетa.* 
Например, чтобы получить доступ ко всем открытым классам в пакете flash. media, 
используется такой код: 
import flash.media.* 
Обратите внимание, что классы, принадлежащие пакету без имени, помещаются 
в автоматически создаваемый пакет, который называется безымянным. Классы из 
безымянного пакета можно непосредственно использовать в любом месте кода 
программы, не применяя директиву import. Другими словами: 
package { 
// Классы, описанные здесь, принадлежат безымянному пакету 
// и могут быть непосредственно использованы 
// в любом месте кода программы 
Тем не менее следует избегать размещения описаний классов в безымянном  
пакете, поскольку их имена могут конфликтовать с именами других классов (и других 
типов описаний), описанных в языке ActionScript, других программах или даже 
в других частях одной программы. 
в других частях одной программы. 
Говоря техническим языком, директива import открывает общедоступное пространство 
имен указанного пакета для текущей и всех вложенных областей видимости. Если вы 
новичок в программировании на языке ActionScript, то вам не стоит беспокоиться о  
техническом аспекте директивы import. Вся необходимая информация будет рассмотрена 
в следующих главах. 
Теперь вернемся к нашей первоначальной задаче — созданию объектов в программе 
«Зоопарк». Вспомним следующий код, в котором создается новый объект класса 
VirtualPet: 
package zoo { 
public class Virtual Zoo { 
public function Virtual Zoo ( ) { 
new VirtualPet 
В приведенном коде успешно создается новый объект класса VirtualPet, но при 
этом возникает проблема: после создания объекта программа не имеет никакой 
возможности обращаться к нему. В результате она не может использовать новое 
животное или управлять им. Чтобы предоставить ей такую возможность —  
обращаться к объекту класса VirtualPet, — используются специальные  
переменные. 




BACK NEXT

Сайт является частным собранием материалов и представляет собой любительский информационно-образовательный ресурс. Вся информация получена из открытых источников. Администрация не претендует на авторство использованных материалов. Все права принадлежат их правообладателям