【Java】各级访问权限总结

以下的总结,权限依次从严格到宽松,靠下的权限一定包含了靠上的权限,又添加了一些别的可以访问的情况

一、 private 访问权限

  • 特点private 是最严格的访问权限,它限制成员只能在定义它们的类内部访问。

  • 作用范围

    • 只能在定义 private 成员的类内部访问(子类无法直接访问,但可以通过父类方法间接访问)。

  • 适用场景:通常用于隐藏类的内部实现细节,保护数据不被外部直接访问或修改,例如类的私有变量。

二、 default(默认访问权限,也称包级访问权限)

  • 特点:当类、方法、变量或构造函数没有明确指定访问权限修饰符时,它们具有默认访问权限。

  • 作用范围

    • 同一个包内的其他类可以访问具有默认访问权限的成员,不同包的类无法直接访问。

  • 适用场景:当你希望限制类或成员的访问范围,仅在同一包内可访问时,可以使用默认访问权限。

三、 protected 访问权限

  • 特点protected 访问权限比默认访问权限更宽松,但比 public 更严格。

  • 作用范围

    • 同一个包内的其他类可以访问 protected 成员。

    • 不同包中的子类可以访问父类的 protected 成员。

  • 适用场景:当你希望在继承关系中共享某些成员,但又不希望完全公开这些成员时,可以使用 protected 访问权限。

四、public 访问权限

  • 特点public 是最宽松的访问权限,它允许任何类访问被修饰的成员。

  • 作用范围

    • 完全开放,谁都可以访问

  • 适用场景:当你希望类或成员在整个程序中都可以被访问时,可以使用 public 访问权限。

各级访问权限的区别

  • 访问范围private 的访问范围最窄,仅限于类内部;default 的访问范围稍宽,限于同一个包内;protected 的访问范围更宽,还允许不同包中的子类访问;public 的访问范围最宽,允许任何类访问。

  • 继承性protectedpublic 访问权限的成员在继承时可以被子类访问,而 privatedefault 访问权限的成员在继承时不会被子类显式继承。

需要注意的点

  • 合理使用访问权限:在设计类和成员时,应根据实际需求选择合适的访问权限,避免过度暴露类的内部实现细节,以提高代码的安全性和可维护性。

  • 避免过度使用 public:虽然 public 访问权限提供了最大的灵活性,但过度使用可能导致类的内部结构被外部随意访问和修改,增加代码的耦合度和维护难度。

  • 注意 protected 的使用protected 访问权限在继承关系中确实提供了一些方便,但Java是一门面向对象的语言,封装性是面向对象的重要特点,protected权限笔者认为大多数情况下只是一种private和public之间无可奈何的过渡方案,更好的解决方案应是数据等用private封装,外界不可见,而向外提供的服务则用public实现(只是外界需要什么提供什么,并不向外暴露细节,也不提供修改内部细节的机会)。

通过合理使用 Java 中的各级访问权限,可以有效地控制类和成员的访问范围,提高代码的安全性、可维护性和可扩展性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值