Javaでは、1つのファイルで複数の最上位クラスを定義できます。ただし、これらのクラスの最大1つがパブリックであることが条件です(JLS§7.6を参照)。例については、以下を参照してください。
この技術のためにきちんと名前が(に類似があり
inner
、nested
、anonymous
)?JLSは、システムがこれらのセカンダリクラスをにすることはできないという制限を強制する可能性があると述べています
referred to by code in other compilation units of the package
。たとえば、それらはパッケージプライベートとして扱うことができません。それは本当にJava実装間で変わるものですか?
たとえば、PublicClass.java:
package com.example.multiple;
public class PublicClass {
PrivateImpl impl = new PrivateImpl();
}
class PrivateImpl {
int implementationData;
}