Thinking in java 读书笔记

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/M_sdn/article/details/46915225
About类库?
当创建了一个类库,也就与该类库的用户建立了某种关系,这些用户就是客户端程序员,他们是另外一些程序员,他们将你的类库聚合成为一个应用程序,或是运用你的类库来创建一个更大的类库。


访问权限控制可以确保不会有任何客户端程序员依赖于某个类的底层实现的任何部分。


两种代码重用机制:
1、组合






2、继承


为了继承,一般的规则是将所有的数据成员都指定为private,将所有的方法指定为public(protected成员也可以借助导出类来访问)。当然,在特殊情况下,必须做出调整。


如果想在新版本中调用从基类继承而来的方法,你不能在子类该方法中直接调用基类的方法,因为会产生递归。为此,Java用super关键字表示超类的意思。所以,表达式super.scrub()将调用基类版本的scrub()方法。


初始化基类。Java会自动在导出类的构造器中插入对基类构造器的调用。


编译器并不是简单地为每一个引用都创建默认对象,原因是若真要那样做的话,就会在许多情况下增加不必要的负担。如果想初始化那些引用,可以在这些位置进行:
①在定义对象的地方。这意味着他们总是能够在构造器被调用之前被初始化。
②在类的构造器中。
③就在正要使用这些对象之前,这种方式称为“惰性初始化”。在生成对象不值得及不必每次都生成对象的情况下,这种方式可以减少额外的负担。
④使用实例初始化。


操作符重载,+=和=是两个被java设计者重载用以处理String对象的操作符。


单元测试技巧:可以为每个类都创建一个main()方法,这会使每个类的单元测试都变得简便易行。


总结:尽管OOP对继承极力强调,但在开始一个设计时,一般应优先选择使用组合(或者可能是代理),只在确实必要时才使用继承。因为组合更具灵活性。此外,通过对成员类型使用继承技术的添加技巧,可以在运行时改变那些成员对象的类型和行为。因此,可以在运行时改变组合而成的对象的行为。


在设计一个系统时,创建的类不应太大(包含太多的功能而难以复用),也不要太小(不添加其他功能就无法使用)。如果现有设计过于复杂,通过将现有类拆分成更小的部分二添加更多的对象,always helps。


当你开始设计一个系统时,应该认识到程序开发是一种增量过程,犹如人类的学习一样,这一点很重要。

猜你喜欢

转载自blog.csdn.net/M_sdn/article/details/46915225