什么是辅助类?

时间:2014-03-20 00:48:29

标签: java class

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

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

编辑2:

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

warning: auxiliary class Pattern in jregex/Pattern.java should not be accessed from outside its own source file

2 个答案:

答案 0 :(得分:6)

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

public class AClass {
    private AuxilaryClass a;
}
class AuxilaryClass {
    private int b;
}

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

然而,使用auxilary类被认为是非常糟糕的风格并且反对Java Code Convention。如果确实需要,请使用单独的或inner课程。

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

答案 1 :(得分:0)

据我所知,辅助班不是任何官方或技术的东西。有人可能会将类描述为辅助,如果它正在解决次要问题,或者其他什么,但编译器不知道辅助类是什么,我也不知道。

通常,如果您有来自计算机的错误消息,请将其全部粘贴。如果您认为编译器对辅助类感到不安,请粘贴错误消息:其他人将能够理解它,而目前它正在通过某种混淆进行过滤,这使您认为辅助类是真实的! / p>