OCJP(310-065)精选笔记之-访问控制修饰符 (Access Modifiers)

本文深入探讨了Java中四种访问控制修饰符:Public、Private、Protected和Default的用法及限制。内容涵盖类成员和变量的访问规则,以及在继承中的影响。强调了Private成员的限制,Protected在跨包继承中的特殊性,以及合理使用Default和Public的原则。文章以图文并茂的方式总结了这些概念。
摘要由CSDN通过智能技术生成
类成员和变量使用4种访问控制修饰符(access modifiers)
  • public
  • protected
  • default
  • private
首先,你得理解两种不同类型的访问情形
  • 一个类里的方法是否可以访问另一个类的成员——用点操作符 (.)调用方法或者变量
  • 子类是否可以继承父类的成员——如果子类可以继承该成员,那子类就相当于拥有了它

        小提示:虽然说实例变量总是允许使用public,但实际上,最好是用private或者protected。如果变量需要被读写,那就加上public的get/set方法去读写它。


下面细说每个访问控制修饰符:
Public
  • 无访问限制
Private
  • 只能用于该类内
  • 也不能被继承
  • 子类可以定义跟父类相同名字的方法,但是这不是覆盖(override),只是碰巧名字相同而已
Protected
  • 同一包(package)里的任何类可见
  • 任何子类可以通过继承来获得访问,无论子类和父类是否在同一包里
  • protected = 继承, 对于包外的子类来说,protected成员只能通过继承来获得访问权限,不能用父类对象引用(a reference to an instance of the superclass)来获取
  • 一旦“包外的子类”继承了这个成员,这个成员在该子类内就相当于private了,除了子类的子类
Default
  • 同一包里的任何类可见
  • 只有子类和父类在同一包里,子类可以通过继承来获取访问权限。也就是说,default 成员只有同一包里的子类可见。

小提示:本地变量(local variable)不能用访问控制修饰符,实际上,唯一可以用于本地变量的修饰符就是final


最后少不了用图总结一下:

Determining Access to Class Members


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值