我有课MyClass
和一个内部类MyNestedClass
像这样:
public class MyClass {
...
public class MyNestedClass {
...
}
}
两堂课的时间都很长。因此,我想将它们分成两个不同的文件,而不破坏层次结构。这是因为嵌套类对于使用 MyClass 的程序员来说不应该是可见的。
有办法实现吗?
您可以将内部类包设为私有,这意味着它只能从完全相同的包中的其他类访问。对于标准 JDK 包中的隐藏类也经常这样做,例如java.lang
or java.util
.
在 pkg/MyClass.java 中
public class MyClass {
...
}
在 pkg/MyHiddenClass.java 中
class MyHiddenClass {
final MyClass outer;
MyHiddenClass( MyClass outer )
{
this.outer = outer;
}
...
}
现在,当您想访问外部类的方法或变量时,您需要在它们前面加上前缀outer.
但是当编译器综合创建对外部实例的引用时,您获得的功能与以前基本相同。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)