java 修饰符 详解_Java 四种访问修饰符详解

访问修饰符权限

PS 红色是不可访问

private

在当前类中 main方法之外可以借助名称使用 在main方法中需要实例化对象使用

我们想要在别的类中调用私有成员 就需要建立一个公有的方法 在公有方法中使用这个私有成员 也就是面向对象中的封装。

在继承中,私有成员无法被继承,子类无法使用父类的私有成员。

6a4c02f04fd5acfdd2a4a24458b4fcc1.png

public:

在当前类中 main方法之外可以借助名称使用 在main方法中需要实例化对象使用

在其他任何地方 都可以实例化对象进行访问

在继承中,被public所修饰的成员能被所有的子类继承下来并使用。

14d2d261d75446e7ac407dc3912355ed.png

protected:

同包情况下

在当前类中 main方法之外可以借助名称使用 在main方法中需要实例化对象使用

在同包的其他类中,可以用实例化对象访问使用

在同包的子类中,被protected修饰的成员可以被继承访问,也就是可以实例化父类或是子类的对象使用

在同包其他类中,且不是子类,要使用子类的类中,同一个包中,可以使用实例化父类或是子类的对象使用

不同包情况下

在不同包的其他类中,不可以用实例化对象访问使用

在不同包的其他子类中,被protected修饰的成员可以被继承访问,但是只能通过实例化子类对象使用。

在不同包的其他类中,且不是子类,要使用子类的类中,是不能通过例化子类对象调用父类的受保护成员的 因为这个时候相当于父类中的受保护成员跨包了。如果想要通过子类对象调用父类的受保护的成员,需要重新覆写父类的这个成员。

在实际的开发中也许很少用到protected来作访问控制,但是java的这个修饰符设计很巧妙,思想很高。同包中可以看做是public,异包中可以看做private

b497a68a612e14d0f40c4f13efa06d8d.png

package/friendly/default

同一包中的所有类都能访问。所修饰的成员只能被该类所在同一个包中的子类所继承下来。

别的包中的子类是没法访问的。

ab9725cc4c4c47e3e58d505a667c228f.png

总结

9e455931eb2fe1e37c88b4e43aab6dfc.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值