`
knitter
  • 浏览: 65510 次
  • 来自: ...
社区版块
存档分类
最新评论

Think in Java (Fourth Edition) 读书笔记 ---- 第1章 对象导论

阅读更多

 

2007年12月4日

19:25

要点

1.面向对象程序设计(Object-oriented Programming, OOP)

2.人们所能够解决的问题的复杂性直接取决于抽象的类型和质量。

类型:指“所抽象的是什么?”

3.面向对象思想的实质是:程序可以通过添加新类型的对象使自身适用于某个特定问题。

4.OOP运行根据问题来描述问题,而不是根据运行解决方案的计算机来描述问题。但是它仍然与计算机有联系:每个对象看起来都有点像一台微型计算机----它具有状态,还有操作,用户可以要求对象执行这些操作。

5.对象:对象具有状态、行为和标识。

6.面向对象思想的基本特性:

  • 万物皆为对象。
  • 程序是对象的集合。
  • 每个对象都有自己的有其它脆响所构成的存储。
  • 每个对象都拥有其类型。
  • 某一特定类型的所以对象都可以接收同样的消息。

7.每个对象都有一个接口

  • 所有的对象都是唯一的,但同时也是具有相同的特性和行为的对象所归属的类的一部分。
  • 类描述了具有相同特性(数据元素)和行为(功能)的对象的集合,所以,一个类实际上就是一个数据类型。
  • 程序员通过定义类来适应问题,而不再被迫只能使用现有的用来表示机器中的存储单元的数据类型,可以根据需求,通过添加新的数据类型来扩展编程语言。

8.任何程序都是你所设计的系统的一种仿真。

9.接口确定了对某一特定对象所能发出的请求,而决定接口的并使类型(类)。

10.每个对象都提供服务

11.被隐藏的具体实现

访问控制存在的原因:

  • 让客户端程序员无法触及他们不应该触及的部分。
  • 允许库设计者可以改变类内部的工作方式而不用担心会影响到客户端程序员。

12.Java使用三个关键字在类的内部设定边界:public private protected

这些访问指定词(access specifier)决定了紧跟其后被定义的东西可以被谁使用。

  • Public:对任何人都是可用的的元素
  • Private:除类型创建者和类型的内部方法之外的任何人都不能访问的元素
  • Protected:除继承的类可以访问protected成员,但是不能访问private成员。

Java的默认访问权限(没有指定以上关键字): 包访问权限 (类可以访问在同一包--库构建-中的其他类的成员,但是在包之外,这些成员如同指定了private一样)。

12.复用具体实现

新类可以由任意数量、任意类型的其它对象以任意可以实现新的类中想要的功能的方式所组成,这种概念被称为:组合(composition)(has-a 关系) ; 如果组合是动态发生的,那么它通常被称为:聚合(aggregation)

13.在创建新类时,应该首先考虑组合,因为它更加灵活简单,然后再考虑使用继承。

14.继承

基类、超类、父类<---->导出类、继承类、子类

一个基类型包含了其所有导出类型所共享的特性和行为。

使用继承时使基类和导出类产生差异的两种方式:

  • 直接在道出了中添加新方法。
  • 改变现有基类的方法的行为:覆盖(overriding)

15.是一个(is-a) 和 像是一个(is-like-a)关系

is-a: 导出类只覆盖基类的方法,导出类和基类具有完全相同的接口,它们是完全相同的类型。---->纯粹替代、替代原则

Is-like-a: 导出类中添加了新的接口元素(接口扩展),基类无法访问新添加的方法。

16.伴随多态的可互换对象

非面向对象编程的编译器参数的函数调用采用:前期绑定

OOP采用:后期绑定(编译器确保被调用方法的存在,并对调用参数和返回值进行检查(强类型),但是并不知道将被执行的确切代码。)

向上转型

17.单根继承结构

除C++以外,所有的OOP语言都是单根继承的。

18.容器

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics