是否可以从其他包访问类外部包?

时间:2013-04-12 04:16:00

标签: actionscript-3 flash class namespaces package

我有一个这样的课程

package test{
    class Test{}
}
class TestInnerClass{}

我可以从Test类访问TestInnerClass,但我需要从其他类访问TestInnerClass(作为类,而不是它的实例)。而且我真的不想让TestInnerClass成为一个独立的类,因为它包含的是一些变量。

有没有办法从Test类外部访问该类?

[编辑] 更具体地说,我需要访问以下代码才能工作。

 registerClassAlias("TestInnerClass",TestInnerClass);

2 个答案:

答案 0 :(得分:1)

如果您有一个除了公共类内部以外无法访问的类,您可以将其定义为内部类。

当前包内的引用可以看到内部类。

在您的示例中,TestInnerClass仅对Test可见。

否则,要访问类或注册类别名,必须在其自己的.as文件中将其定义为public。

包有助于对层次结构中的代码进行排序和分类。通常,我会将Value Object或Data Transfer Objects保留在自己的包中,例如:

 com.jasonsturges.model.vo

这有助于将较小的模型类组合在一起。

答案 1 :(得分:1)

如果你想让一个类在包含它的包之外可见,你的类将被定义为:

// SampleCode.as file 
package samples{
public class SampleCode {} 
}

 // CodeFormatter.as file 
package samples{
class CodeFormatter {} 
}

SampleCode类是可见的,而CodeFormatter类则不可用。

希望我已经回答了你的问题