【问题标题】:Doubts about top level class acess modifiers in Java对 Java 中顶级类访问修饰符的质疑
【发布时间】:2015-11-24 17:56:38
【问题描述】:

我对 Java 中用于顶级类的访问修饰符有一些疑问。

1) 访问修饰符 public 或 default 是否只能用于顶级类甚至嵌套类?

2) 假设有两个不同的类 A 和 B,都在不同的包中。然后为了通过 B 类访问(访问类成员)类 A,那么顶级类,即“A”以及类成员都应该被定义为 public,对吧?如果类或类成员不是公共的,那么 B 类将无法访问 A 类,对吧?

如果我错了,请纠正。

【问题讨论】:

  • 你尝试的时候发生了什么?

标签: java class access-modifiers


【解决方案1】:

1) 嵌套类可以具有与顶级类相同的访问修饰符。

2) 为了从 B 类访问 A 类,只需要公开 A。 B 类可能是包私有的(默认)。如果 A 的方法是公共的(如果 B 不从 A 继承),则 B 只能访问 A 的方法。如果类 A 是包私有的,那么 A 是否包含任何公共方法都无关紧要 - B 将无法访问它们。

另请参阅Oracle docsthis stackoverflow thread

【讨论】:

    猜你喜欢
    • 2013-05-25
    • 1970-01-01
    • 1970-01-01
    • 2013-04-27
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 2013-07-29
    相关资源
    最近更新 更多