有没有办法让顶级课程变得私密?

时间:2011-07-31 09:32:09

标签: java

据我所知,我们只能制作内部private

有没有办法在java中创建顶级private

4 个答案:

答案 0 :(得分:3)

不,如JLS中所述:

  

并非所有修饰符都适用于所有类声明。   访问修饰符public仅适用于顶级类(第7.6节)   和成员类(§8.5,§9.5),并在§6.6,§8.5和   第9.5节。受保护的访问修饰符和私有仅适用于   直接封闭类声明中的成员类(第8.5节)   并在§8.5.1中讨论。访问修饰符静态仅适用   成员类(§8.5,§9.5)。如果出现编译时错误   同一个修饰符在类声明中出现不止一次。

答案 1 :(得分:1)

不,你不能这样做。想一想。如果你的外层阶级是私人的,那么它是谁?没有人可以访问它,根本不会使用该类。

答案 2 :(得分:1)

不,如果是这样的话,这将是一个非常毫无意义的课程,因为没有人可以访问它!

编辑:嗯,有可能通过反序列化和反射以及可能非私有的内部类来访问它(参见Tom的评论。)然而,这些都不是很好的方法来实现它和这是JLS不允许它发生的完美的(我个人认为最好的)选择。

答案 3 :(得分:1)

如果某个类是私有的,那么即使来自同一个包,它也无法从任何其他类中使用。私人课程也可能不存在。