好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

《写给大家看的面向对象编程书(第3版)》

《写给大家看的面向对象编程书(第3版)》

内容简介

《写给大家看的面向对象编程书(第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 . XML ( extensible  markup language )是不同系统之间定义和传输数据的一种标准机制, 面向对象数据定义语言 。

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

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

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

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

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

29. 访问修饰符

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

作者: Leo_wl

    

出处: http://www.cnblogs.com/Leo_wl/

    

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

版权信息

查看更多关于《写给大家看的面向对象编程书(第3版)》的详细内容...

  阅读:40次