2015070508 - EffactiveJava笔记 - 第13条 使类和成员的可访问性最小(2)

   Java那些机制完成信息隐藏呢?

   1.访问控制决定类,接口,成员的可访问性;

   2.对象的可访问性由该对象声明所在的位置,以及修饰对象的访问控制修饰符共同决定.

 

   第一规则:尽可能使每个类或者成员不被外界访问.(要做大家闺秀,不需要所有的人知道你,必要几个知道你即可!  尽可能最小的访问级别!)

   顶层(非嵌套,应该是内部类)类和接口,只有两种访问级别:包级私有(package)和公开(public)的.

   被public修饰顶层类或者接口,那它就是共有的.你就有责任永远支持它,保持它们的兼容性.(感触:如果你的类和接口只在内部使用,千万不要设置为共有,防止其他人使用,一旦别人使用,你修改起来非常棘手!)

   包级私有的类和接口,它就是包实现内容,而不是该包导出API的组成,在以后发行版本中可以修改,替换或者删除,无需担心影响现有客户端.(感触:从此处可以看出,模块升级到包级别!)

   如果一个包级私有的顶层类(或者接口)只在某个类内部被用到,应该考虑使它成为使用它的类的内部类.

   好处在于它的访问级别从包内所有类降低到类内部,降低不必要共有类的可访问性,比降低包级私有的顶层类更重要.因为共有类是包的API,而包级私有的顶层类则是包的实现部分.

 

    成员,属性,方法,内部类,内部接口四种访问级别.

                       类        包         子类            公共

    private            是        否         否               否

    包                 是        是         否               否

    protected          是        是         是               否

    public             是        是         是               是


    private,只有在声明该成员的类内部才可以访问这个成员;

    包级私有,(修饰符什么都没有),声明该成员的包内部的任何类都可以访问这个成员;

    protected,声明该成员的类的子类可以访问这个成员,该成员的包内部的任何类同样可以访问这个成员

    public,在任何地方都可以访问该成员.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值