如果我有一个Java类是包私有的(用"class"而不是"public class"声明),那么内部方法声明为public、protected或包私有,实际上没有什么区别,对吗?那么我应该使用哪个修饰符,或者何时使用哪个?我有点困惑。
如果我有一个Java类,其访问权限为包范围(使用"class"声明而不是"public class"),那么类内部的方法声明为public、protected或者包范围并没有什么区别,对吗?也许一开始看起来并没有区别。但是如果你将来声明了一个继承于这个包范围类的'protected' 或 'public' 类,那么原始类成员的可见性就会很重要。正如@kmccoy所指出的那样,将类声明为final可以消除子类的可能性。但这只是表面现象。如果您随后决定确实需要创建子类,则可以删除 "final" 关键字 ... 然后您又回到了访问修饰符的选择很重要的情况。我认为,最重要的是要选择最合适的修饰符...即使现在不是必需的。如果没什么问题,你的修饰符选择应该记录下表示抽象边界的意图。
final class SomeClass
,那么成员可见性是否重要? - kmccoy