![]() |
сеттер и геттер
Добрый день!
Объясните пожалуйста смысл сеттрев и геттрев, помимо разницы в вызове. В чём принципиальное различие: Код AS1/AS2:
Код AS1/AS2:
что то я где то упустил:) |
Только в синтаксисе
|
Код AS3:
|
Разница в том, что при "set a" можно обратиться к свойству "a" приблизительно так
Код AS3:
Код AS3:
public var a:Number; Код AS3:
думаю мысль донес ) |
Кэп сообщает, что сеттер/геттер - это функции, в отличии от. И разница как между переменной и функцией.
|
ТОВАРИЩИ!!! Сеттер и геттер намного полезнее чем здесь описано,приведу несколько примеров:
1) нужно сделать в обьекте переменную, доступную только для чтения извне, но не для установки - тогда сама переменная делается private, и создается функция-геттер выдающая ее значение (для свойств-обьектов придется сначала сделать копию этого обьекта, чтобы не выдывать геттером ссылку на приватный обьект) 2) если добавление нового свойства создает избыточность данных. типичный пример - вектор (x,y) у которого иногда нужно узнавать длину length. Очевидно, что длина - значение вычисляемое, а значит его хранить не обязательно, можно написать геттер, который будет вычислять длину по значениям текущих координат вектора : return Math.sqrt(x*x+y*y) да и для читабельности кода геттер и сеттер лучше, чем явный вызов методов главное - нужно помнить, что удобство написания кода и скорость его выполнения - совсе разные вещи, поэтому в критических местах все-таки приходится кешировать избыточную информацию в виде отдельных переменных (как например длина вектора). даже сам Adobe этим не гнушается, вспомнитье хотябы свойство всех отображаемых обьектов "cacheAsBitmap" |
Цитата:
|
спасибо, смысл всего понял)
|
| Часовой пояс GMT +4, время: 20:43. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.