Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Атрибуты доступa гетеров/сетеров (http://www.flasher.ru/forum/showthread.php?t=156021)

Kicker 14.05.2011 17:42

Атрибуты доступa гетеров/сетеров
 
Код в Class1:
Код AS3:

                public function get progress():Number
                {
                        return _progress;
                }
                protected function set progress(value:Number):void
                {
                        _progress = value > 1 ? 1 : value;
                }

Код в Class2 наследованного от Class1:
Код AS3:

                public function update():Number
                {
                        progress = 0.5;
                }

При компиляции выкидывает ошибку:
Error: Attempted access of inaccessible property progress through a reference with static type Class2
Error: Property is read-only.

Можно ли как-нибуть установить для гетера и сетера разные уровни доступа?

honest_man 14.05.2011 17:56

У геттера и сеттера должны быть идентичные атрибуты управления доступом.

P.s. если идентификатор один и тот-же, а в вашем случае это так "progress". Можно изменить идентификатор, например getProgress и setProgress, тогда ставьте разные атрибуты.

По другому никак.

Kicker 14.05.2011 18:13

Спасибо. Просто хотелось одно имя использовать, думал есть какое-нибуть решение. :)

goodguy 14.05.2011 18:22

Цитата:

Можно ли как-нибуть установить для гетера и сетера разные уровни доступа?
Зачем?

honest_man 14.05.2011 18:25

goodguy, ясное дело =) чтобы одному и тому-же идентификатору можно было задать различный доступ отдельно для записи и для чтения.

Честно говоря, я бы тоже не против такого поведения. =)

Wolsh 14.05.2011 21:47

И что потом делать с += например?

Psycho Tiger 14.05.2011 21:55

Ничего. Публичный геттер, но интернальный сеттер. Это вполне ок, я считаю. Мне тоже жаль, что так нельзя.

goodguy 14.05.2011 21:59

У кого реально была необходимость в таком действии? Лично у меня не было.
Никогда не парился по поводу назначения геттерам / сеттерам, атрибута public
В 99% случаев, это не чревато никакими "нехорошими" последствиями

honest_man 14.05.2011 22:25

goodguy, это несомненно так, но ведь никто и не заявлял что это какая-то там необходимость, (некоторые труженики кода вообще предпочитают обходиться без геттеров/сеттеров, полностью исключая их из своего арсенала) однако это было бы вполне удобно. =)

Psycho Tiger 15.05.2011 01:33

У меня была. Возникает... ну раз в 2 недели.


Часовой пояс GMT +4, время: 14:46.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.