admin管理员组

文章数量:1530845

2024年5月12日发(作者:)

ActionScript编程 使用修饰符

作用:

控制类、属性、方法和常量的访问权限,防止非授权的访问。

说明:

在ActionScript中,除了命名空间外,还可以通过修饰符来限制类、属性、方法和常量

的访问权限,防止越级访问。修饰符相当于官方给定的命名空间,但其比命名空间的适应性

更大一些。

在ActionScript3.0版本中,修饰符共分两种,即修饰类的修饰符,以及修饰类中属性、

常量、方法的修饰符。

1.类修饰符

类的修饰符通常用于定义类的扩展性。ActionScript的类修饰符共有4种,如下所示。

dynamic 用该修饰符定义的类允许在程序运行时向实例添加属性。

final 用该修饰符定义的类不允许被其他类扩展

internal 默认修饰符,允许当前包内引用该类。

public 允许任意位置的引用

与Java等编程语言不同,ActionScript3.0不支持抽象类,因此没有abstract修饰符。另外,

ActionScript3.0不允许用private等修饰符修饰类。如不需要某个类被外部引用,可以为其添

加internal修饰符,防止外部的引用。为类添加修饰符的方法如下所示。

package PackageName{

Attribute class ClassName {}

}

在上面的代码中,各关键词的含义如下所示。

package 定义包的关键词

PackageName 定义包的名称

Attribute 类的修饰符

class 定义类的关键词

ClassName 定义类的名称

internal是ActionScript中类默认的修饰符,ActionScript会自动为任何不包含修饰符的类

添加internal修饰符。

2.成员修饰符

在ActionScript3.0中,允许用户为类的成员使用成员修饰符。成员修饰符与类修饰符的

使用方式类似,如下所示。

internal 默认修饰符,允许当前包内引用

private 允许当前类内引用

protected 允许当前类及由当前类派生的类引用

public 允许任意位置的引用

static 指定该成员属于当前类,但不允许被当前类的实例引用

 用户定义的命名空间 允许用户自定义成员的引用

成员修饰符的使用方法与类修饰符的使用方法类似,其默认值同样为internal。关于命名

空间,请参考本章相关小节。

示例:

被public属性修饰的类或类的成员被称作公共类和公共成员。而被private属性修饰的成

员被称作类的私有成员。一个公共类既可以包含公共成员也可以包含私有成员。例如,编写

一个求圆面积和周长的类,如下所示。

package s{

public class myCircle{

private const pi:Number=3.14;

public function myCircle ():void{

}public function circumference(radius:Number=1):Number{

return radius*2*pi;

}public function area(radius:Number=1):Number{

return (radius,2)*pi;

}

}

}

在上面的代码中,常量pi就是一个私有成员,该成员将无法被myCircle类所在的包以外

的内容访问。而myCircle类的circumference()方法和area()方法则是公共方法,允许任何位置

的代码访问,例如,从另一个包中访问这两个方法,如下所示。

package s{

import ;

import le;

public class test2 extends Sprite{

private var iCircle:myCircle=new myCircle();

public function test2():void{

trace(ference(4));

trace((4));

}

}

}

将上面的类作为Flash影片的文档类,执行代码,即可输出半径为4的圆周长和面积,

如下所示。

25.12

50.24

在上面的两个包中,第1个包内的私有常量pi是无法被第2个包中的代码访问的。但是第1个

包中的公共方法circumference()和area()则是允许任意位置的代码访问的。因此,在第2个包中

无法输出私有常量pi的值,但可以使用circumference()和area()这两个方法。

本文标签: 修饰符成员允许访问