![]() |
|
||||||||||
|
|||||
|
геттеры - позволяют создать контроль задаваемых значений.
Ну да сеттеры, короткое замыкание в мозгах .сеттеры-позволяют создать контроль задаваемых значений. З,Ы - Дело было поздней ночью, мозги просились в койку, глаза видели сны.
__________________
Книги и желание лучшие учителя. Последний раз редактировалось Vektor; 10.11.2011 в 08:23. |
|
|||||
|
Цитата:
Или про такое public function set item { if(item!="кака")_item = item; } public function get item { return _item; } Или я опять забыл, что такое инкапсуляция и полимрфизм.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку. Последний раз редактировалось GBee; 09.11.2011 в 22:37. |
|
|||||
|
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Цитата:
![]() |
|
|||||
|
Регистрация: Apr 2009
Адрес: kup78.livejournal.com
Сообщений: 84
|
А по скорости работы через геттеры/сеттеры против полей класса нет информации? Где-то на форуме было, что при неоднократном обращении к полю, выгоднее его закешировать в локальной переменной.
|
|
|||||
|
Да. Оператор dot - тоже оператор )
А аксессор - это всё таки почти метод. Цитата:
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Цитата:
Но геттеры позволяют контролировать отдаваемое значение =)Цитата:
|
|
|||||
|
Цитата:
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку. Последний раз редактировалось GBee; 09.11.2011 в 23:06. |
|
|||||
|
Регистрация: Apr 2009
Адрес: kup78.livejournal.com
Сообщений: 84
|
вообще, для меня естественно, чтобы выполнялось с одинаковой скоростью при отсутствии проверок, а сеттеры, только лишь синтаксический сахар, для удобства. Но реальность пока где-то рядом.
![]() |
|
|||||
|
Цитата:
Вот например возьмем класс Socket. Нам совсем не нужно знать о том, как он поднимает эти соединения и всё в этом духе. Нам не нужно знать, что за поле _buf у него есть (если есть), потому что нам дают вполне полный функционал для работы, а залезя во внутренности мы что нибудь сломаем что нибудь руками. Вот сокрытие того, как класс делает что-то и есть инкапсуляция. Предоставление пользователю только того, чего он не сможет сломать. Соответственно, посему геттер без сеттера это проблеск инкапсуляции - мы запрещаем ему менять какую-то переменную. Но разные проверки внутри сеттера - это штатные ситуации, которые обрабатываются. Это просто код класса. Полиморфизм, если на пальцах... Ну вот есть класс A, от которого наследуется класс B. class A{ public function method():void{ trace(1); } } class B{ override public function method():void{ trace(2); } } Обычное поле класса никак не переопределить, и полиморфизма в нём не добиться. А вот сеттеры-геттеры можно.
__________________
Тут мужик танцует и поёт про флэш |
![]() |
![]() |
Часовой пояс GMT +4, время: 22:36. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|