Параметры и аргументы конструктора ActionScript 

 

 

Параметр конструктора — это особый тип локальной переменной,  

представляющий собой часть описания метода-конструктора. В отличие от обычных  

локальных переменных, исходное значение параметра конструктора может (или в  

некоторых случаях должно) задаваться из внешнего кода при создании нового экземпляра 

класса. 

При создании параметров конструктора вместо ключевого слова var между  

круглыми скобками описания функции конструктора просто указывается желаемое имя 

и инициализатор переменной, как показано в следующем обобщенном коде: 

class НекийКлдсс { 

function НекийКласс (идентификатор = значение) { 

В данном коде идентификатор — это имя параметра конструктора, а значение —  

исходное значение параметра. 

Если возникает необходимость описать несколько параметров в  

методе-конструкторе, то их имена перечисляются через запятую, как показано в обобщенном коде 

ниже (обратите внимание на разрывы строк, которые не только допустимы, но 

и широко распространены): 

class НекийКласс { 

function НекийКласс (идентификатор! = значение!, 

идентификатор2 = значение2, 

идентифинаторЗ = значениеЗ) { 
По умолчанию исходное значение параметра конструктора определяется значением, 
указанным в описании этого параметра. Однако значение параметра конструктора 
можно определить и при создании объекта, используя следующий обобщенный код: 
new НекийКласс(значение1, значение2, значениеЗ) 
В этом коде значение^ значение2 и значениеЗ — это значения, присваиваемые в  
указанном порядке параметрам метода-конструктора класса НекийКласс. Значение,  
присваиваемое параметру конструктора при создании объекта (как показано в  
предыдущем коде), называется аргументом конструктора. Использование аргумента 
конструктора в качестве значения параметра конструктора называется передачей 
этого значения конструктору. 
Если описание параметра конструктора не содержит инициализатора переменной, 
то исходное значение этого параметра указывается через аргумент конструктора. 
Такой параметр называется обязательным параметром конструктора.  
Следующий обобщенный код демонстрирует создание класса с одним обязательным  
параметром конструктора (обратите внимание, что описание параметра не содержит 
инициализатора переменной): 
class НекийКласс { 
function НекийКласс (обязательныйПараметр) { 
Любой код, создающий экземпляр предыдущего класса, обязательно должен  
указывать значение параметра обязательныйПараметр с помощью аргумента конструктора, 
как показано ниже: 
new НекийКласс(значение) 
Отсутствие аргумента конструктора для обязательного параметра приведет к  
ошибке либо на этапе компиляции программы (если для компиляции выбран строгий 
режим), либо на этапе выполнения программы (если программа была  
откомпилирована в стандартном режиме). 
Используя в качестве примера предыдущий обобщенный код, описывающий  
метод-конструктор класса с параметром, добавим новый метод-конструктор в класс 
VirtualPet и опишем один обязательный параметр конструктора — name.  
Значение параметра name будет присвоено переменной экземпляра petName каждого 
объекта VirtualPet. 
Рассмотрим основной код, содержащий описание нового метода-конструктора без 
каких-либо инструкций: 
package zoo { 
internal class VirtualPet { 
internal var petName = "Unnamed Pet"; 
public function VirtualPet (name) { 
Поскольку параметр name является обязательным, его исходное значение должно 
определяться извне при создании объекта. В связи с этим мы должны обновить 
код, создающий объект VirtualPet в конструкторе VirtualZoo. До этого наш 
код выглядел так: 
package zoo { 
public class VirtualZoo { 
public function VirtualZoo ( ) { 
var pet = new VirtualPet; 
pet.petName = "Stan"; 
Это же обновленная версия, в которой значение Stan передается конструктору 
класса VirtualPet, а не присваивается переменной petName созданного  
экземпляра: 
package zoo { 
public class VirtualZoo { 
public function VirtualZoo ( ) { 
var pet = new VirtualPetCStan"); 
В этом коде при создании экземпляра класса VirtualPet выполняется  
конструктор этого класса и аргумент конструктора Stan присваивается параметру name. 
Из этого следует, что внутри конструктора класса VirtualPet параметр name 
можно использовать для присваивания значения Stan переменной экземпляра 
petName нового объекта VirtualPet. Для этого необходимо указать значение 
переменной petName, используя выражение идентификатора. 




BACK NEXT

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