我是靠谱客的博主 笨笨小丸子,最近开发中收集的这篇文章主要介绍effective java读书笔记 (二),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

第四章 类和接口

第十三条  使类和成员的可访问性最小化

信息隐藏(封装):设计模块时把它的API与它的实现清晰地隔离开来

封装的带来的好处:有效地接触组成系统的各模块之间的耦合,同时减轻了维护的负担,并且可以有效地调节性能,还可以提高软件的可重用性,也降低了构建大型系统的风险。

java中提供的协助信息隐藏的机制:访问控制机制决定了类、接口和成员的可访问性。对于顶层(非嵌套的)的类和接口,只有两种可能的访问级别:包级私有的和公有的

 而对于成员(域、方法、嵌套类和嵌套接口)有四种可能的访问级别,按照可访问性的递增顺序罗列如下:

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

包级私有(default):声明该成员的包内部的任何类都可以访问这个成员

受保护的(protected)声明该成员的类的子类可以访问

公有的(public)在任何地方都可以访问该成员

尽可能使每个类或者成员不被外界访问

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

如果方法覆盖了超类中的一个方法,子类中的访问级别就不允许低于超类中的访问级别,这样可以保证任何可使用超类的地方都可以使用子类的实例。这条规则的特殊情形:如果一个类实现了一个接口,那么接口中的所有方法在这个类中也都必须声明为公有的

总之,应该始终尽可能的降低可访问性,当在仔细的设计了一个最小的公有API后,应该防止把任何散乱的类、接口和成员变成API的一部分,除了共有静态final域的特殊情形外,公有类不应该包含公有域,并且要确保公有静态final域所引用的对象是不可变的


第十四条  在公有类中使用访问方法而非公有域

公有类永远都不应该暴露可变的域,有时候可以让公有类暴露不可变的域,有时候需要用包级私有或者私有的嵌套类来暴露域,无论类是可变或者不可变


最后

以上就是笨笨小丸子为你收集整理的effective java读书笔记 (二)的全部内容,希望文章能够帮你解决effective java读书笔记 (二)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部