代码之家  ›  专栏  ›  技术社区  ›  Pavel Chuchuva grapeot

在ActionScript3类中,我可以拥有一个带有getter和setter的属性吗?

  •  4
  • Pavel Chuchuva grapeot  · 技术社区  · 17 年前

    在ActionScript3类中,我可以拥有一个带有getter和setter的属性吗?

    3 回复  |  直到 17 年前
        1
  •  20
  •   Max Stewart    17 年前

    好的,您可以对AS3类的任何属性使用基本的getter/setter语法。例如

    package {
    
        public class PropEG {
    
            private var _prop:String;
    
            public function get prop():String {
                return _prop;
            }
    
            public function set prop(value:String):void {
                _prop = value;
            }
        }
    }
    
        2
  •  3
  •   JustLogic    17 年前

    例子:

    
    private var _foo:String = "";
    
    public function get foo():String{
        return _foo;
    }
    
    public function set foo(value:String):void {
        _foo= value;
    }
    

    here

        3
  •  0
  •   Swati Singh    15 年前

    setter总是有一个参数,因为我们通过参数给变量一个新值。

    我们首先创建一个包含getter和setter的类的实例,在本例中它是“a”。然后我们调用setter,如果我们想更改变量,使用点语法我们调用setter函数,并使用=运算符填充参数。要重设变量的值,我们使用getter的方式与示例(a.myVar)中所示类似。与常规函数调用不同,我们省略了括号。不要忘记添加返回类型,否则将出现错误。

    {

    import flash.display.Sprite;
    import flash.text.TextField;
    
    public class App extends Sprite 
    {
           private var tsecField:TextField;
           private var tField:TextField;
    
           public function App() 
           {
                   myTest();
           }
    
           private function myTest():void 
           {
                   var a:Testvar = new Testvar();
    
                   tField = new TextField();
                   tField.autoSize = "left";
                   tField.background = true;
                   tField.border = true;
                   a.mynewVar = "This is the new var.";
                   tField.text = "Test is: "+a.myVar;
                   addChild(tField);
           }
    }
    

    导入flash.display.Sprite;

    类Testvar扩展了Sprite {

    public function Testvar() 
    {
    }
    public function set mynewVar(newTest:String):void 
    {
           test = newTest;
    }
    public function get myVar():String 
    {
           return test;
    }
    

    }