Возвращаемые значения метода ActionScript 

 

 

Подобно тому, как методы могут принимать значения в виде аргументов, они  

также могут генерировать возвращаемые значения. Для возврата значения из метода 

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

function имяМетода ( ) { 

return значение; 

После выполнения метода его возвращаемое значение становится значением  
выражения вызова, с помощью которого был вызван этот метод. 
Чтобы продемонстрировать использование возвращаемых значений метода,  
добавим новый метод в класс VirtualPet, который позволит определить возраст  
животного и вернуть получившийся результат. Для определения возраста животного 
нам понадобятся базовые знания о классе Date, экземпляры которого представляют 
определенные моменты времени. Для создания нового экземпляра класса Date 
используется следующий код: 
new Date( ) 
Для внутреннего представления времени в экземплярах класса Date используется 
«количество миллисекунд до или после полуночи 1 января 1970 года».  
Например, время «одна секунда после полуночи 1 января 1970 года» выражается  
числом 1000. Подобным образом, время «полночь 2 января 1970 года» выражается 
числом 86 400 000 (один день — это 1000 мс х 60 с х 60 мин х 24 ч). По умолчанию 
новый объект Date представляет текущее время на локальной системе. 
Для обращения к числовому значению «миллисекунд с 1970 года» определенного 
объекта Date используется переменная экземпляра time. Например, в следующем 
коде создается новый экземпляр класса Date и затем возвращается значение его 
переменной time: 
new Date( ).time; 
Глава 1. Основные понятия 
В результате выполнения этого кода 24 января 2007 года в 17:20 было получено 
значение 1 169 677 183 875, представляющее точное количество миллисекунд 
между полночью 1 января 1970 года и временем выполнения кода (то есть 17:20 
24 января 2007 года). 
Теперь вернемся к классу VirtualPet. Чтобы иметь возможность определять  
возраст объектов VirtualPet, необходимо сохранить точное время создания каждого 
такого объекта. Для сохранения времени создания каждого объекта создадим  
экземпляр предопределенного класса Date в конструкторе класса VirtualPet и  
присвоим этот экземпляр переменной creat ionTime экземпляра класса VirtualPet. 
Привожу этот код: 
package zoo { 
internal class VirtualPet { 
internal var petName; 
private var currentCalories = 1000; 
private var creationTime; 
public function VirtualPet (name) { 
this.creationTime = new Date( ); 
this.petName = name; 
public function eat (numberOfCalories) { 
this.currentCalories += numberOfCalories; 
Использование переменной creationTime позволяет определить возраст любого 
объекта VirtualPet путем вычитания времени создания объекта из текущего 
времени. Это вычисление производится с помощью нового метода getAge ( ): 
public function getAge ( ) { 
var currentTime = new Date( ); 
var age = currentTime.time - this.creationTime.time; 
Чтобы возвратить вычисленный возраст объекта, воспользуемся оператором  
возврата: 
public function getAge ( ) { 
var currentTime = new Date( ); 
var age = currentTime.time - this.creationTime.time; 
return age; 
Следующий код демонстрирует описание метода ge t Age ( ) в контексте описания 
класса VirtualPet: 
package zoo { 
internal class VirtualPet { 
internal var petName; 
75 
private var currentCalories = 1000; 
private var creationTime; 
public function VirtualPet (name) { 
this.creationTime = new Date( ); 
this.petName = name; 
public function eat (numberOfCalories) { 
this.currentCalories += numberOfCalories; 
public function getAge ( ) { 
var currentTime = new Date( ); 
var age = currentTime.time - this.creationTime.time; 
return age; 
Теперь воспользуемся возвращенным значением метода getAge ( ) в  
конструкторе класса VirtualZoo. Выражение вызова метода getAge ( ) рассмотрим в  
следующей обновленной версии конструктора VirtualZoo: 
package zoo { 
public class VirtualZoo { 
private var pet; 
public function VirtualZoo ( ) { 
this.pet = new Virtual Pet("Stan"); 
this.pet.getAge( ); 
В приведенном коде выражение pet. getAge ( ) возвращает числовое значение, 
представляющее количество миллисекунд, прошедших с момента создания объекта 
VirtualPet, на который ссылается переменная pet. Чтобы впоследствии можно 
было обращаться к этому значению в программе, его необходимо присвоить  
переменной, как показано в следующем коде: 
package zoo { 
public class VirtualZoo { 
private var pet; 
public function VirtualZoo ( ) { 
this.pet = new Virtual Pet("Stan"); 
var age = this.pet.getAge( ); 
Позже, в более полной версии программы по созданию виртуального зоопарка, 
возраст будет выводиться на экран. 
Возвращаемые значения методов являются широко используемой составляющей 
объектно-ориентированного программирования. В книге будут постоянно  
описываться возвращаемые значения. Точно так же вы постоянно будете применять их 
при разработке собственных классов. 
Обратите внимание, что выражение вызова можно объединять с остальными  
выражениями с помощью операторов. Например, в следующем коде для вычисления 
половины возраста животного используется оператор деления: 
pet.getAge( ) / 2 
Подобным же образом в следующем коде создаются два объекта класса Vi rtual Pe t, 
выполняется сложение возрастов созданных объектов, и затем полученная сумма 
присваивается локальной переменной totalAge. 
package zoo { 
public class VirtualZoo { 
private var petl; 
private var pet2; 
public function VirtualZoo ( ) { 
this.petl = new Virtual Pet("Sarah"); 
this.pet2 = new VirtualPetCLois"); 
var totalAge = this.petl.getAge( ) + this.pet2.getAge( ); 
Обратите внимание, что, когда оператор возврата не возвращает никакого значения, 
он просто завершает выполнение текущего метода. Например: 
public function некийМетод ( ) { 
// Код. размещенный здесь (перед оператором возврата), будет выполнен 
return; 
// Код. размещенный здесь (после оператора возврата), выполнен не будет 
Значением выражения вызова, используемого для вызова метода, который не  
имеет возвращаемого значения (или вообще не имеет оператора возврата), является 
специальное значение undefined. Операторы возврата, не возвращающие никакого 
значения, обычно используются для завершения методов на основании некоторого 
условия. 




BACK NEXT

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