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()这两个方法。
版权声明:本文标题:ActionScript编程 使用修饰符 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1715485286a454560.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论