命名空间的理解

一直以来对命名空间都比较迷茫,看书也是一知半解,今天又看了一遍帮助文档。慢慢有一点点理解了。
帮助文档:通过命名空间可以控制所创建的属性和方法的可见性。请将 public、private、protected 和 internal 访问控制说明符视为内置的命名空间。如果这些预定义的访问控制说明符无法满足您的要求,您可以创建自己的命名空间。
我的理解:以上四种访问控制不能实现的情况,可以自定义访问控制说明符,这就是命名空间。反过来说,命名空间就是一种自定义的访问控制说明符。
以下实例来自帮助文档:(自己修改了一点点)
1. 定义命名空间
package example
{
//公共的命名空间
public namespace myInternal= "http://www.adobe.com/2006/actionscript/examples";

}

2. 将方法和属性存入命名空间。使用时只需要打开命名空间却可
package example.alpha
{
import example.myInternal;
/**
* ...
* @author zkl
*/
public class Utility
{
private static var _taskCounter:int = 0;
private static var _s:String="未定义";
public static function someTask():void {
_taskCounter++;
}
//将静态属性存入命名空间
myInternal static function get taskCounter():int{
return _taskCounter;
}
myInternal static function get wk():String {
return _s;
}
myInternal static function set wk(s:String):void {
_s = s;
}
//将静态方法存入命名空间
myInternal static function vars():void {
trace(_s);
}
//将实例方法存入命名空间
myInternal function f():void {
trace("实例方法");
}
}

}
3. 使用命名空间
package 
{
import flash.display.MovieClip;
import example.myInternal;
import example.alpha.Utility;
/**
* ...
* @author zkl
*/
public class NamespaceUseCase extends MovieClip
{
private var u:Utility = new Utility;
public function NamespaceUseCase() {
//打开命名空间
use namespace myInternal;
//使用命名空间
Utility.someTask();
Utility.someTask();
trace(Utility.taskCounter);
//Utility.wk="我靠";
Utility.vars();
u.f();

}
}

}
上面的使用其他访问控制说明符也应该可以实现,这里只是展示怎么使用命名空间。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值