2011-07-17 14 views
0

我在一個方法中只讀取了一個方法中的變量如何在stackoverflow上讀取一個問題(現在找不到它),但是代碼仍然與答案是酒店房間的比喻一起工作。在AS3中,我相信一切不是原始的東西都可以作爲參考。所以,下面的代碼和這個問題是一樣的,並且不能保證工作?AS3 - 對參數的參考,是不好的?

public class Testy { 
    private var foo:Array; 

    public function Testy(input:Array) { 
     // Allow the whole class to access it 
     foo = input; 
    } 

    public function traceFoo(){ 
     trace(foo); 
    } 

} 

現在,foo將是類的構造函數中對輸入參數的引用。這是安全守則/良好做法嗎?謝謝!

回答

1

是的,只要你不想操縱原始數組,那麼這是安全的/好的代碼實踐。如果您想操作原始數組,請允許公衆訪問該數組,方法是使其成爲公共變量或使用公共getter/setter。

1

你所描述的是一個屬性,並與面向對象編程的封裝內聯。

這會暴露一個getter和setter:

 

package 
{ 
    import flash.display.Sprite; 

    public class Testy extends Sprite 
    { 
     private var _foo:Array; 

     public function get foo():Array 
     { 
      return _foo; 
     } 

     public function set foo(value:Array):void 
     { 
      _foo = value; 
     } 

     public function Testy() 
     { 
      super(); 
     } 

    } 
} 
0

而且最好是在吸氣不破壞封裝返回_foo.concat()。