Руководство по actionscript. часть 1, стр. 054

Для обращения к числовому значению «миллисекунд с 1970 года» определенного объекта Date используется переменная экземпляра time. Например, в следующем коде создается новый экземпляр класса Date и затем возвращается значение его переменной time:

new Date( ).time;

В результате выполнения этого кода 24 января 2007 года в 17:20 было получено значение 1 169 677 183 875, представляющее точное количество миллисекунд между полночью 1 января 1970 года и временем выполнения кода (то есть 17:20 24 января 2007 года).

Теперь вернемся к классу Virtual Pet. Чтобы иметь возможность определять возраст объектов VirtualPet, необходимо сохранить точное время создания каждого такого объекта. Для сохранения времени создания каждого объекта создадим экземпляр предопределенного класса Date в конструкторе класса VirtualPet и присвоим этот экземпляр переменной creationTime экземпляра класса 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 путем вычитания времени создания объекта из текущего времени. Это вычисление производится с помощью нового метода get Age ( ):

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:

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 VirtualPet(«Stan»); this. pet. getAge( );

}

}

}

В приведенном коде выражение pet. getAge ( ) возвращает числовое значение, представляющее количество миллисекунд, прошедших с момента создания объекта VirtualPet, на который ссылается переменная pet. Чтобы впоследствии можно было обращаться к этому значению в программе, его необходимо присвоить переменной, как показано в следующем коде:

package zoo { public class VirtualZoo { private var pet;

public function VirtualZoo ( ) { this. pet = new VirtualPet(«Stan»); var age = this. pet. getAge( );

}

}

}

Позже, в более полной версии программы по созданию виртуального зоопарка, возраст будет выводиться на экран.

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

Обратите внимание, что выражение вызова можно объединять с остальными выражениями с помощью операторов. Например, в следующем коде для вычисления половины возраста животного используется оператор деления:

pet. getAge( ) / 2

Подобным же образом в следующем коде создаются два объекта класса Vi rtual Ре t, выполняется сложение возрастов созданных объектов, и затем полученная сумма присваивается локальной переменной totalAge.

package zoo { public class VirtualZoo { private var petl: private var pet2:

public function VirtualZoo ( ) { this. petl = new VirtualPet(«Sarah»); this. pet2 = new VirtualPetCLois»); var totalAge = this. petl. getAge( ) + this. pet2.getAge( );

}

}

}

Обратите внимание, что, когда оператор возврата не возвращает никакого значения, он просто завершает выполнение текущего метода. Например:

public function некийМетод ( ) { // Код. размещенный здесь (перед оператором возврата), будет выполнен

return:

// Код. размещенный здесь (после оператора возврата), выполнен не будет

}

Значением выражения вызова, используемого для вызова метода, который не имеет возвращаемого значения (или вообще не имеет оператора возврата), является специальное значение undefined. Операторы возврата, не возвращающие никакого значения, обычно используются для завершения методов на основании некоторого условия.

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Оставить комментарий

Вы должны авторизоваться для отправки комментария.

Полезные ссылки
Случайные записи
  • 17.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.125
  • 10.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.64
  • 22.01.2011">Руководство по actionscript. часть 1, стр. 112
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 018
  • 09.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.160
  • 07.03.2011">Руководство по actionscript. часть 4, стр. 099
  • 03.03.2011">Руководство по actionscript. часть 5, стр. 069
  • 10.03.2011">Руководство по actionscript. часть 4, стр. 042
  • 16.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.14
  • 19.08.2010">Веб-дизайн и реклама
  • 27.07.2010">Визуальное оформление для навигации
  • 16.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.25
  • 07.03.2011">Руководство по actionscript. часть 4, стр. 117
  • 23.02.2011">Руководство по actionscript. часть 7, стр. 023
  • 09.03.2011">Руководство по actionscript. часть 4, стр. 069
Опрос

Какие цвета вы предпочитаете?

View Results

Loading ... Loading ...