zw3*_*324 62 java default class modifier package-private
我最近在学习Java,我遇到了package-private类的概念,如果我们没有指定任何东西,这是默认的.但后来我意识到:
我很少看到使用package-private类.是否有这样的原因,例如,它有严重的缺点,它是多余的,或者只是我阅读不够?是否有强烈的论据支持/反对其使用?
如果它在大多数情况下确实没用,为什么它会是默认值?
在什么情况下我们应该在现实世界中使用package-private?即,什么时候会变得不可替代?
换句话说,默认的package-private修饰符的主要优点和缺点是什么?
And*_*yle 54
简短的回答是 - 这是一种稍微宽泛的私人形式.
我假设你熟悉的区别public和private,以及为什么它通常是很好的做法,使方法和变量private,如果他们要单独用于内部问题的类.
好吧,作为对此的扩展 - 如果您正在考虑以模块化方式创建软件,您可能会想到一个模块的公共接口,它将在其中有多个类在它们之间进行协作.在这种情况下,public如果方法将被消费者调用,那么制作方法是完全合理的; private如果他们是班级内部的; 而package private如果他们使用这个模块中的类之间的调用,也就是说,它是你的模块的实现细节(公共呼叫者可以看到),但跨越几类.
这在实践中很少使用,因为包装系统对于这种事情并没有那么有用.您必须将给定模块的所有类转储到完全相同的包中,对于任何非平凡的包都会变得有点笨拙.所以这个想法很棒 - 只需要一些"附近"的类就可以访问一个方法,只是稍微宽一些private- 但是对你如何定义这组类的限制意味着它很少使用/有用.