as 3におけるgetとsetキーワードの役割

5569 ワード

JavaのJavaBeanでの属性処理とは異なり,AS 3ではget,setをキーワードとし,この2つのキーワードで属性のアクセスと変更を制御する.
AS 3では、public修飾のgetメソッドとsetメソッドが同時に定義されている場合、オブジェクト・メソッド名でそのプロパティにアクセスして変更することができ、メソッド名にカッコを付けないように注意することができます.
この属性のgetメソッドのみが定義されている場合、その属性は変更できません.
この属性のsetメソッドのみが定義されている場合、その属性にアクセスできません.
次の例では、OrderEventはプライベート属性を定義します.dishesは、この属性のgetメソッドとsetメソッドget dish()とset dish()を定義します.CustomerではorderDishを1つ通過することができる.dishesは、このプロパティにアクセスして変更します.
 1 package

 2 {

 3     import flash.events.Event;

 4     public class OrderEvent extends Event

 5     {

 6         public static const ORDER_DISHES:String = "  ";

 7         private var _dishes:Array;

 8         public function OrderEvent()

 9         {

10             super(ORDER_DISHES);

11         }

12         public function set dishes(dishesAry:Array):void{

13             _dishes = dishesAry;

14         }

15         public function get dishes():Array{

16             return _dishes;

17         }

18     }

19 }
 1 package

 2 {

 3     import flash.events.EventDispatcher;

 4 

 5     public class Customer extends EventDispatcher

 6     {

 7         public var name:String;

 8         public function Customer(nS:String)

 9         {

10             name = nS;

11         }

12         

13         public function order():void{

14             var orderDish:OrderEvent = new OrderEvent();

15             orderDish.dishes = ["    ","     ","    "];

16             dispatchEvent(orderDish);

17         }

18     }

19 }