什么是辅助类?

Bra*_*exe 7 java class

我知道这些问题可能听起来很愚蠢,但在Java中,什么是辅助类,如何编写一个,编译器如何知道某些东西是辅助类?

编辑:我问这个的原因是因为编译器正在生成关于外部库中对象的警告,我想知道原因.

编辑2:

以下是需要它的人的编译器警告:

warning: auxiliary class Pattern in jregex/Pattern.java should not be accessed from outside its own source file
Run Code Online (Sandbox Code Playgroud)

Art*_*tem 6

正如Java规范descried 在这里,你可以在一个java文件指定多个类.名称与.java文件名匹配的类将是可以声明为public且对其他类可见的主类.因此,文件中的所有其他类都是"auxilary"类.Auxilary类不能被声明为public(并且正如@trashgod所指出的那样)因此它们只能通过包私有访问来声明.例如对于AClass.java文件:

public class AClass {
    private AuxilaryClass a;
}
class AuxilaryClass {
    private int b;
}
Run Code Online (Sandbox Code Playgroud)

AuxilaryClass类不能公开,并且在此AClass.java文件之外不可见.

但是,使用auxilary类被认为是非常糟糕的风格和Java Code Convention.如果确实需要,请使用单独或内部类.

编辑:术语"Auxilary"不是Oracle/Sun的官方术语.它已在此处引入(或使用):http://www.youtube.com/watch?v = miTM9rY3He0和/或此处:http://doc.sumy.ua/prog/java/langref/ch05_03.htm