存取器可以让外部类访问到类的私有属性

package {
       import flash.display.Sprite;
 
       public class A extends Sprite {
              private var a:Number;
 
              public function A():void {
                     a=2;
              }
              public function get aa():Number {
                     return a;
              }
              public function set aa(s:Number):void {
                     a=s;
              }
       }
}
在时间轴上写入
var p:A=new A();
p.aa=8;
trace(p.aa);//输出8;
若在时间轴上输入:
var p:A=new A();
p.aa+=8;
trace(p.aa);//输出10;
其中gettersetter存取器函数的名称可以不同,所以我做了以下实验:
package {
       import flash.display.Sprite;
 
       public class A extends Sprite {
              private var a:Number;
 
              public function A():void {
                     a=2;
              }
              public function get aa():Number {
                     return a;
              }
              public function set bb(s:Number):void {
                     a=s;
              }
       }
}
在时间轴上输入:
var p:A=new A();
p.bb=8;
trace(p.aa);//输出8;
若在时间轴上输入:
var p:A=new A();
p.bb+=8;
trace(p.aa);
输出:1119: 访问可能未定义的属性 bb (通过 static 类型 A 引用)。
所以虽然存取器的名称可以不同,但是不同后的很多用法就没办法用了,
另外存取器函数名与类中的变量名不能相同,和函数中的形参也不能相同。
(即上面例子中的a和aa,a和s)。

PS:p.bb+=8 相当于 p.bb=p.bb+8  由于p.bb没有 get访问器 所以报错..