В Java вы можете определить несколько классов верхнего уровня в одном файле, при условии, что не более одного из них являются общедоступными (см. JLS §7.6). См. Ниже, например.
-
Есть ли чистое название для этой техники (аналогично
inner,nested,anonymous)? -
JLS говорит, что система может обеспечить ограничение, что эти вторичные классы не могут быть
referred to by code in other compilation units of the package, например, они не могут рассматриваться как private-private. Это действительно что-то, что меняется между реализациями Java?
например, PublicClass.java:
package com.example.multiple;
public class PublicClass {
PrivateImpl impl = new PrivateImpl();
}
class PrivateImpl {
int implementationData;
}