概述
第四章 类和接口
第十三条 使类和成员的可访问性最小化
信息隐藏(封装):设计模块时把它的API与它的实现清晰地隔离开来
封装的带来的好处:有效地接触组成系统的各模块之间的耦合,同时减轻了维护的负担,并且可以有效地调节性能,还可以提高软件的可重用性,也降低了构建大型系统的风险。
java中提供的协助信息隐藏的机制:访问控制机制决定了类、接口和成员的可访问性。对于顶层(非嵌套的)的类和接口,只有两种可能的访问级别:包级私有的和公有的
而对于成员(域、方法、嵌套类和嵌套接口)有四种可能的访问级别,按照可访问性的递增顺序罗列如下:
private:只有在声明该成员的顶层类内部才可以访问这个成员
包级私有(default):声明该成员的包内部的任何类都可以访问这个成员
受保护的(protected)声明该成员的类的子类可以访问
公有的(public)在任何地方都可以访问该成员
尽可能使每个类或者成员不被外界访问
如果一个包级私有的顶层类(或者接口)只是在某一个类的内部被用到,就应该考虑使它成为唯一使用它的那个类的私有嵌套类
如果方法覆盖了超类中的一个方法,子类中的访问级别就不允许低于超类中的访问级别,这样可以保证任何可使用超类的地方都可以使用子类的实例。这条规则的特殊情形:如果一个类实现了一个接口,那么接口中的所有方法在这个类中也都必须声明为公有的
总之,应该始终尽可能的降低可访问性,当在仔细的设计了一个最小的公有API后,应该防止把任何散乱的类、接口和成员变成API的一部分,除了共有静态final域的特殊情形外,公有类不应该包含公有域,并且要确保公有静态final域所引用的对象是不可变的
第十四条 在公有类中使用访问方法而非公有域
公有类永远都不应该暴露可变的域,有时候可以让公有类暴露不可变的域,有时候需要用包级私有或者私有的嵌套类来暴露域,无论类是可变或者不可变
最后
以上就是笨笨小丸子为你收集整理的effective java读书笔记 (二)的全部内容,希望文章能够帮你解决effective java读书笔记 (二)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复