as3中的get和set关键字的作用

和Java的JavaBean中属性处理方式不一样,AS3中将get,set当做关键字,并通过这两个关键字来控制属性的访问和修改。

在AS3中,当一个属性同时被定义了public修饰的get和set方法时,就可以通过“对象.方法名”来访问和修改该属性,注意方法名不要带括号。

当只定义了该属性的get方法时,不能修改该属性。

当只定义了该属性的set方法时,不能访问该属性。

如下例中,OrderEvent定义了一个私有属性_dishes,并定义了该属性的get和set方法get dish()和set dish()。在Customer中就可一个通过orderDish.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 }

 

你可能感兴趣的:(set)