|
|
|||||
Регистрация: Feb 2010
Сообщений: 23
|
сеттер и геттер
Добрый день!
Объясните пожалуйста смысл сеттрев и геттрев, помимо разницы в вызове. В чём принципиальное различие: от: и тоже самое с геттером. что то я где то упустил |
|
|||||
Регистрация: Jan 2008
Сообщений: 669
|
Только в синтаксисе
|
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
__________________
Тут мужик танцует и поёт про флэш Последний раз редактировалось Psycho Tiger; 11.06.2010 в 20:36. |
|
|||||
Регистрация: Jun 2010
Адрес: somewhere in the universe
Сообщений: 195
|
Разница в том, что при "set a" можно обратиться к свойству "a" приблизительно так
Разница между сеттером и публичным свойством заключается в том, что мы можем обработать поступившие данные как нам удобно к примеру public function set a(num:Number):void { _a = num*2; } var someClass:SomeClass = new SomeClass(); someClass.a = 10; public var a:Number; Мы бы получили 10 думаю мысль донес ) |
|
|||||
Регистрация: May 2010
Адрес: Украина, Донецкая обл., Харцызск
Сообщений: 13
|
ТОВАРИЩИ!!! Сеттер и геттер намного полезнее чем здесь описано,приведу несколько примеров:
1) нужно сделать в обьекте переменную, доступную только для чтения извне, но не для установки - тогда сама переменная делается private, и создается функция-геттер выдающая ее значение (для свойств-обьектов придется сначала сделать копию этого обьекта, чтобы не выдывать геттером ссылку на приватный обьект) 2) если добавление нового свойства создает избыточность данных. типичный пример - вектор (x,y) у которого иногда нужно узнавать длину length. Очевидно, что длина - значение вычисляемое, а значит его хранить не обязательно, можно написать геттер, который будет вычислять длину по значениям текущих координат вектора : return Math.sqrt(x*x+y*y) да и для читабельности кода геттер и сеттер лучше, чем явный вызов методов главное - нужно помнить, что удобство написания кода и скорость его выполнения - совсе разные вещи, поэтому в критических местах все-таки приходится кешировать избыточную информацию в виде отдельных переменных (как например длина вектора). даже сам Adobe этим не гнушается, вспомнитье хотябы свойство всех отображаемых обьектов "cacheAsBitmap" |
|
|||||
.
|
Спасибо, что напомнили нам и разъяснили молодежи, но можно ли без "!!!!"? Выглядит очень вульгарно.
|
|
|||||
Регистрация: Feb 2010
Сообщений: 23
|
спасибо, смысл всего понял)
|
Часовой пояс GMT +4, время: 19:19. |
|
« Предыдущая тема | Следующая тема » |
|
|