我最近在学Java,并且遇到了package-private
类的概念,如果我们没有指定任何东西,这是默认的。但后来我意识到:
换句话说,默认的package-private修饰符的主要优点和缺点是什么?
发布于 2018-03-27 13:37:37
简短的回答是 - 这是一种稍宽的私人形式。
我假设你熟悉区分public
和之间的区别private
,以及为什么在方法和变量private
如果要单独用于有问题的课程时是很好的做法。
那么,作为一个扩展 - 如果你正在考虑以模块化方式创建你的软件,你可能会考虑为你的模块提供一个公共接口,它将在它们之间有多个类进行协作。在这种情况下,public
如果方法被消费者打电话,那么它就非常有意义; private
如果他们在班级内部; 而package private
如果他们使用这个模块中的类之间的调用,也就是说,它是你的模块的实现细节(公共呼叫者可以看到),但跨越几类。
这在实践中很少使用,因为包装系统对于这类事情不是那么有用。你必须将给定模块的所有类转储到完全相同的包中,这对于任何不重要的东西都会变得笨重。所以这个想法很好 - 让一个方法可以访问少量的“附近”类,稍微宽一些private
- 但是对于如何定义这些类的限制意味着它很少被使用/很有用。
发布于 2018-03-27 13:51:24
package-private的一个好处是你可以使用它来访问你认为私有的单元测试类的方法。当然,其缺点是包中的其他类可以在它们不应该的时候调用它。
https://stackoverflow.com/questions/-100003708
复制相似问题