外部文件中的嵌套/内部类
2022-09-01 01:08:26
我有一个类和一个内部类,如下所示:MyClass
MyNestedClass
public class MyClass {
...
public class MyNestedClass {
...
}
}
这两个类都很长。因此,我想将它们分成两个不同的文件,而不会破坏层次结构。这是因为嵌套类对使用 MyClass 的程序员不可见。
有没有办法实现这一目标?
我有一个类和一个内部类,如下所示:MyClass
MyNestedClass
public class MyClass {
...
public class MyNestedClass {
...
}
}
这两个类都很长。因此,我想将它们分成两个不同的文件,而不会破坏层次结构。这是因为嵌套类对使用 MyClass 的程序员不可见。
有没有办法实现这一目标?
您可以将内部类包设为私有,这意味着只能从完全相同的包中的其他类访问它。对于标准 JDK 包(如 或 )中的隐藏类,也经常这样做。java.lang
java.util
在 pkg/MyClass 中.java
public class MyClass {
...
}
在 pkg/MyHiddenClass 中.java
class MyHiddenClass {
final MyClass outer;
MyHiddenClass( MyClass outer )
{
this.outer = outer;
}
...
}
现在,当您想要访问外部类的方法或变量时,您需要为它们添加前缀,但是当您由编译器综合创建对外部实例的引用时,您基本上可以获得与以前相同的功能。outer.
不。Java源代码不能拆分到多个文件中。你需要一个类似于C#中的分部类的构造,而Java没有。