Получить / установить функции на статические свойства - PullRequest
1 голос
/ 07 февраля 2012

Я узнал об инкапсуляции в AS3 и использовании функций get / set для создания переменных, которые (или кажутся) только для чтения.Я могу заставить его работать с переменными экземпляра, но не со статическими переменными.Я нашел this , что, кажется, указывает на то, что можно использовать функции get / set для статических свойств, но компилятор продолжает сообщать мне, что у меня есть дубликаты объявлений функций.По сути, это то, что я использую:

package {
    public class Foo {
        protected static var bar:int = 0;

        public static function get bar():int {return bar;}
    }
}

Ответы [ 2 ]

5 голосов
/ 07 февраля 2012

Вы не можете создать функцию (включая get или set) с тем же именем, что и переменная, иначе вы бы заново инициировали переменную.

package {
    public class Foo {
        protected static var myVar:int = 0;

        public static function get theVar():int {return myVar;}
    }
}
4 голосов
/ 07 февраля 2012

Хорошая практика, которую вы можете применить, - это вызывать _bar «внутренней» переменной, которую вы собираетесь изменить, с помощью getter и setter, и называть их просто bar.

Например:

package {
    public class Foo {
         protected static var _bar:int = 0;

         public static function get bar():int {
               return _bar;
         }
     }
}  
...