不,我们不能将顶级类声明为private或protected。它可以是public 或default(没有修饰符)。如果它没有修饰符,则应该具有默认访问权限。
// A top level class public class TopLevelClassTest { //类体 }
如果将 顶级类声明为私有,则编译器将抱怨此处不允许使用修饰符private。这意味着顶级类不能为私有类,也可以将其应用于受保护的访问说明符。
受保护意味着该成员可以被 同一包中的任何类以及子类 访问,即使它们位于另一个包中也是如此。
在顶级类只能有公共的,抽象的和最终的改性剂,它也可以不定义在所有任何类修饰符。这称为默认/程序包可访问性。
我们可以将 内部类声明为私有或受保护的类,但是在外部类中则不允许这样做。
一个Java源文件中可以定义多个顶级类,但是最多可以有一个 公共顶级类声明。文件名必须与公共类的名称匹配。
protected class ProtectedClassTest { int i = 10; void show() { System.out.println("Declare top-level class as protected"); } } public class Test { public static void main(String args[]) { ProtectedClassTest pc = new ProtectedClassTest(); System.out.println(pc.i); pc.show(); System.out.println("Main class declaration as public"); } }
在上面的示例中,我们可以将类声明为protected,这将引发错误,表明此处不允许使用修饰符protected。因此上述代码无法执行。
输出结果
modifier protected not allowed here
private class PrivateClassTest { int x = 20; void show() { System.out.println("Declare top-level class as private"); } } public class Test { public static void main(String args[]) { PrivateClassTest pc = new PrivateClassTest(); System.out.println(pc.x); pc.show(); System.out.println("Main class declaration as public"); } }
在上面的示例中,我们可以将类声明为private,这将引发错误,表明此处不允许使用修饰符private。因此上述代码无法执行。
输出结果
modifier private not allowed here
问题内容: 为什么Java不允许将顶级类声明为私有?除了“我们无法访问私人课程”之外,还有其他原因吗? 问题答案: 顶级类作为私有类是完全没有用的,因为没有人可以访问它。
问题内容: 在我经历1000 s 之后,可能不需要 是否有 任何情况下, 该下降从将使在差异 封装 (或 使用 例如,通过外)?还考虑思考 如果 不 建议将其删除或使其与编码风格保持一致? 我说 没有 和 下降 ,但不知道真的。 编辑: 刚意识到 我 的方式肯定是错误的-至少对于的 字段 -声明这些字段为私有字段,然后在外部类中使用它们- 因为这会在字节码中生成( “ synthetic” )访问
问题内容: 我只是想知道是否需要TimeSpan,以便我可以定义两次之间的时,分,秒。 由此我们可以有两次之间的时间间隔。喜欢 要么 有了这个,我们就可以用它了。 我不确定这是否已经在Java中实现但尚未被我发现。 问题答案: 借助SDK中的JDK 8日期时间库,您可以使用 要么 来自JodaTime的会.. 时间间隔表示两个时刻之间的时间段。间隔包括开始时刻,不包括结束。结束时刻始终大于或等于开
本文向大家介绍我可以将JavaScript变量声明为特定类型吗?,包括了我可以将JavaScript变量声明为特定类型吗?的使用技巧和注意事项,需要的朋友参考一下 JavaScript变量没有类型。值具有类型。这是声明JavaScript变量的方式- 你仍然可以这样写- 正如您在上面看到的那样,在变量声明中指定类型没有任何好处。这是因为类型由变量的值决定。
问题内容: 可以将方法指定为私有方法还是受保护方法? 会编译吗? 它会运行吗? 问题答案: 它会编译,不会运行(使用Eclipse测试)。
问题内容: 我认为在这种情况下,无需声明公共构造函数,因为无论如何都无法在包外部访问该类。但是,当类只有包私有构造函数时,会产生一些隐藏的影响吗? 问题答案: 不,您不必声明公共构造函数。包私有构造函数将同样可用。包外部的类无论如何都无法使用构造函数,因为它们看不到该类。