在Java中,您可以在单个文件中定义多个顶级类,但其中最多只能有一个是public(请参见JLS §7.6)。以下是示例。
这种技术是否有一个整洁的名称(类似于
inner
、nested
、anonymous
)?JLS说系统可能会强制执行限制,即这些辅助类不能被包中其他编译单元中的代码引用,例如,它们不能被视为包私有。这在Java实现之间是否真的会发生变化?
例如,PublicClass.java:
package com.example.multiple;
public class PublicClass {
PrivateImpl impl = new PrivateImpl();
}
class PrivateImpl {
int implementationData;
}