以下的总结,权限依次从严格到宽松,靠下的权限一定包含了靠上的权限,又添加了一些别的可以访问的情况
一、 private 访问权限
-
特点:
private是最严格的访问权限,它限制成员只能在定义它们的类内部访问。 -
作用范围:
-
只能在定义
private成员的类内部访问(子类无法直接访问,但可以通过父类方法间接访问)。
-
-
适用场景:通常用于隐藏类的内部实现细节,保护数据不被外部直接访问或修改,例如类的私有变量。
二、 default(默认访问权限,也称包级访问权限)
-
特点:当类、方法、变量或构造函数没有明确指定访问权限修饰符时,它们具有默认访问权限。
-
作用范围:
-
同一个包内的其他类可以访问具有默认访问权限的成员,不同包的类无法直接访问。
-
-
适用场景:当你希望限制类或成员的访问范围,仅在同一包内可访问时,可以使用默认访问权限。
三、 protected 访问权限
-
特点:
protected访问权限比默认访问权限更宽松,但比public更严格。 -
作用范围:
-
同一个包内的其他类可以访问
protected成员。 -
不同包中的子类可以访问父类的
protected成员。
-
-
适用场景:当你希望在继承关系中共享某些成员,但又不希望完全公开这些成员时,可以使用
protected访问权限。
四、public 访问权限
-
特点:
public是最宽松的访问权限,它允许任何类访问被修饰的成员。 -
作用范围:
-
完全开放,谁都可以访问
-
-
适用场景:当你希望类或成员在整个程序中都可以被访问时,可以使用
public访问权限。
各级访问权限的区别
-
访问范围:
private的访问范围最窄,仅限于类内部;default的访问范围稍宽,限于同一个包内;protected的访问范围更宽,还允许不同包中的子类访问;public的访问范围最宽,允许任何类访问。 -
继承性:
protected和public访问权限的成员在继承时可以被子类访问,而private和default访问权限的成员在继承时不会被子类显式继承。
需要注意的点
-
合理使用访问权限:在设计类和成员时,应根据实际需求选择合适的访问权限,避免过度暴露类的内部实现细节,以提高代码的安全性和可维护性。
-
避免过度使用
public:虽然public访问权限提供了最大的灵活性,但过度使用可能导致类的内部结构被外部随意访问和修改,增加代码的耦合度和维护难度。 -
注意
protected的使用:protected访问权限在继承关系中确实提供了一些方便,但Java是一门面向对象的语言,封装性是面向对象的重要特点,protected权限笔者认为大多数情况下只是一种private和public之间无可奈何的过渡方案,更好的解决方案应是数据等用private封装,外界不可见,而向外提供的服务则用public实现(只是外界需要什么提供什么,并不向外暴露细节,也不提供修改内部细节的机会)。
通过合理使用 Java 中的各级访问权限,可以有效地控制类和成员的访问范围,提高代码的安全性、可维护性和可扩展性。

4312

被折叠的 条评论
为什么被折叠?



