【发布时间】:2020-10-30 14:09:00
【问题描述】:
Java 没有子包可见性的概念
我知道:(
Java: Subpackage visibility?
所以如果我在包 com.example.foo 中有一个 A 类(包可见)
以及 com.example.foo.bar 包内的另一个 B 类(包可见)
+-- org.example
|
+-- foo
|
+-- A
|
+-- bar
|
+-- B
它们实际上是 like 在不同的包中,然后一个类对另一个类不可见。
我一直想知道的一件事是为什么?
包的结构文件夹将鼓励像子包可见性这样的机制。
这样高层次的类就可以访问低层次的类。
在这个例子中:
A类应该可以访问B类
(内部类也是如此)
如果该机制到位,我们可以更好地组织代码并进行更好的封装。
How to organize code logically into package while preserving encapsulation
这对于 Java 世界来说将是一个非常好的功能。
不想批评,为什么要对包的可见性做出这种决定?
为什么不考虑子包的可见性?
【问题讨论】:
-
我的猜测是因为java中确实没有子包的概念。
-
您链接的第一个问题已经回答了您的问题:Java 没有子包,因此它不能具有子包可见性。这些包可能看起来是分层的,因为它们通常存储在文件系统中,但这并不意味着它们实际上是分层的。
标签: java package visibility