《写给大家看的面向对象编程书》读书笔记【含思维导图】

内容简介

《写给大家看的面向对象编程书(第3版)》是一部独具特色的面向对象技术著作。书中结合代码示例生动透彻地讲述了面向对象思想的精髓,让读者真正学会以对象方式进行思考。此外,《写给大家看的面向对象编程书(第3版)》还讨论了各种与面向对象概念密切相关的应用主题,包括XML、UML建模语言、持久存储、分布式计算和客户/服务器技术等。《写给大家看的面向对象编程书(第3版)》内容精炼,示例简单明了,适合各层次面向对象开发人员阅读,也是高校相关专业面向对象课程的理想教学参考书。

阅读完整理了几张思维导图,可以帮助理解整个OO设计各个概念之间的关系

 

其他零碎的一些笔记,某些概念附带超链接

1.OO和过程式程序设计的区别:OO设计中,属性和行为都包含在一个对象中(称为封装),而在过程式程序设计(结构化设计)中,属性和行为是分开的。

2.OO设计术语中,数据称为属性,行为称为方法

3.获取方法设置方法提供了对对象的数据的一种受控访问,获取方法和设置方法有时分别称为访问方法和修改方法。

4.类是对象的模板。当创建一个对象时,称为对象被实例化。必须在创建对象前先设计类。

5.类的数据由属性表示。每个类必须定义属性来存储由这个类实例化的各个对象的状态。

6.要实现数据隐藏,所有属性都应当声明为private。在大多数OO语言中,接口中的方法都指定为public

7.超类(或父类或基类)包含继承自该类的所有子类(或派生类)共同的属性和行为。

8.在大多数OO语言中,一个类只能有一个父类——单重继承。有些语言(如C++)则允许一个类有多个父类——多重继承

9.初始化顺序①对象的初始化顺序:先静态成员,再非静态成员,再构造方法;②继承中构造方法的调用顺序: 先父类,再子类。

10.如果一个子类从超类继承了一个抽象方法,它就必须为这个方法提供具体实现。

11.a.构造函数constructor)指一个与其所在类同名的方法,且该方法没有提供任何返回类型。构造函数是类的入口点,对象由此构建。构造函数非常适合完成初始化new关键字用于类的实例化并分配所需的内存。

Cabbies myCabbie = new Cabbie();

b.初始化是构造函数完成的一个常见功能。如果没有为Cabbie类提供一个构造函数,就会自动插入以下默认构造函数

public Cabbie()

{

super();

}

c.如果类中有属性,好的实践往往是在构造函数中初始化这些属性。

d. 使用多个构造函数(重载方法):利用函数不同的签名。签名 =方法名 + 参数列表

public String getRecord(int key)

e. 超类如何构造:①调用该类超类的构造函数;②初始化对象的各个类属性;③执行构造函数中的其余代码

12.实现细节对用户是隐藏的。实现的任何部分可以改变而不影响类的用户接口。接口包含调用一个方法以及返回一个值的语法。如果这个接口没有改变,用户就不关心实现是否发生了改变。

13.对象持久性object persistence)指保存对象的状态,从而可以在以后恢复并使用。方案①,将对象保存到平面文件(使用专有的串行化技术或者使用可以跨多个平台和语言的XML模型);方案②,写至关系数据库。

14.OO设计的目标是设计抽象、高度可重用的类。

15.尽可能为用户提供最小接口。确定最终的接口是一个迭代的过程。

16.异常粒度:可以捕获不同粒度的异常。可以捕获所有异常也可以只检查某些异常。

17.this:关键字是当前对象的一个引用,而super:表示当前对象父类对象的引用 。

18.静态属性:为该属性分配一段内存用于由这个类实例化的所有对象,该属性由该类的所有对象共享。这有些接近全局数据的概念。

19.操作符重载operator overloading)可以改变一个操作符的含义,如"+"可以用作加号,也可以用作字符串拼接。大多数OO语言并不允许操作符重载。

20.a.继承组合存在的最主要原因可能就是对象重用。继承——is-a关系;组合——has-a关系。

b.继承是子类使用父类的方法,而多态则是父类使用子类的方法。重载、重写、继承、多态的区别

Triangle tri = new Triangle(); //继承

Shape shape = new Triangle(); //多态

c.重载是在一个类里一系列名字相同参数不同的方法,而重写(override)是指子类的实现替代父类中的实现,继承后重新实现父类的方法。

d.Object类在Java.Net环境下是所有类的基类。

21.每个新的继承关系都会为继承方法的使用建立一个新的上下文。需要为每一个这样的上下文考虑一个完整的测试策略——测试新的代码。

22.创建可重用代码的一种方法就是创建框架。框架的思想围绕着即插即用和重用原则。可以用接口和抽象类来创建框架。

23.契约contract):要求开发人员遵守应用编程接口规范所需的机制。在.Net中,实现契约两种方法:抽象类和接口。

24.继承是一种严格的is-a关系,但接口不是。接口可以跨多个类。

25.a.XMLextensible markup language)是不同系统之间定义和传输数据的一种标准机制,面向对象数据定义语言

b.HTML表示数据,XML描述数据(格式化数据),还可以用CSS辅助格式化数据(侧重于显示的样式)。与HTML相比,XML提供了合法性检查——DTDDocument Type Definition)。为了能够验证文档使得XML文档更为健壮,需要在DTD中定义用来描述数据的标记。

26.含有抽象方法的类必然是抽象类,而抽象类的方法不一定都是抽象方法。抽象类不能被实例化。抽象类不能是密封的或静态的,抽象类被子类继承并实现它的方法。

只有虚方法或静态方法可以被重写,抽象方法可以看成是没有实现体的虚方法。基类的抽象方法需要子类去实现,而虚方法已经在基类中实现,子类是否选择覆盖基类方法取决于子类的需求。抽象方法和虚方法的区别

27.面向对象的三大特征:①封装:保证对象自身数据的完整性、安全性;②继承:建立类之间的关系,实现代码复用、方便系统的扩展;③多态:相同的方法调用可实现不同的实现方式。面向对象的多态性

28.密封类是类的一种,用sealed修饰,不能用作基类。因此,它也不能是抽象类。密封类主要用于防止派生。

29.访问修饰符

---------------------------THE END--------------------------------

posted @ 2012-11-06 11:12  Memphis Yip  阅读(3659)  评论(14编辑  收藏  举报