В 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;
}