载入中
载入中
时间记忆
<<  < 2008 - 10 >  >>
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
我的相册
最新日志
载入中
最新评论
载入中
最新回复
载入中
我的好友
站点信息
载入中
Thinking in Java读书笔记
2005-10-15 12:34:00

Java编程思想是一本难得好书,目前已经出了第三版,我看的是依照三版的英文版和shhgs的中译本,基本上是在看英文版,除非遇到自己不太明白的或很难把握的地方,才会去翻中译本,但是做读书笔记的时候,参考了中译本。
下面是第一章内容,以后陆续贴出了,也算是在网络上做个备份吧。

1.所有的编程语言都提供抽象。你能解决的问题的复杂程度直接与抽象的种类和质量有关。汇编语言是对计算机的抽象,Basic等高级语言又是对汇编语言的抽象。

面向对象的方法允许以问题的角度,而不是以要解决的问题的计算机的角度来描述问题。

2.Alan Kay总结了面向对象语言的五个基本特征:(1)万物皆对象。将对象想成一种特殊的变量:它能存储数据,而且你可以对它替要求,命令它进行某种操作。(2)程序就是一组相互之间传递消息,告诉对方该干些什么的对象。消息就是调用专署某个对象的方法的请求。(3)对象都有类型。也就是说对象都是某个类的实例,区分类的最突出的特点就是能像它传递什么消息;(4)每个对象都利用别的对象来组建它自己的记忆,也就是你可以利用已有的对象创建新的对象。(5)所有属于同一类型的对象都能接受相同的消息。比如一个“圈形”这样的对象,也是一个“形状”对象,所以可以保证 “圈形”能够接受“形状”的消息。这种互换性是面向对象语言最强大的功能之一。

3.类描述的是一组具有相同特征(数据元素)和行为(功能)的对象,所以类实际上是一种数据类型。类和数据类型的区别在于,类实程序员为解决特定问题而定做的,数据类型是为了表示机器的存储单元而设计的,它是现成的,是程序员无可奈何时的选择。

当你开发一个程序或分析一个程序的设计时,理解对象的最佳方式是把他们当作“服务的提供者”,程序本身会为用户提供服务,而它通过使用其他对象所提供的服务来完成这个工作。你的任务就是制作一组能为解决问题提供最佳服务的对象。将对象视作服务的提供者还有一个优点就是它能够提高对象的内聚性。将对象视作服务的提供者还是一种很了不起的简化工具。它不仅在设计过程游泳,而且还能帮助别人理解你的代码或复用这个对象。将对象视作服务的提供者能使对象更容易地被用于设计。

4.Java四个访问权限:public所有都可以访问,private除非创建者都不可访问,protected只有继承类可以访问,package,默认权限,同一个包内的类都可以访问。设置权限的原因有两个:不允许客户程序员去碰它们不应该动的东西;允许类库的设计人员能在不打扰客户程序员的情况下修改类内部工作方式。

5.类的复用有两种方法:向派生类中增加了新方法(extends)(is-like-a关系),第二种是在派生类中修改基类的方法(override覆写)(这就是替换原则,是一种is-a关系)。

6.Abstract基类和Interface,前者只想让基类去表示有其派生出的类的接口,不想让人创建一个基类的对象,而只是想把对象上传给它,以期能使用这个类的接口。后者是前者的概念的深化,它不允许你实现任何算法,接口可以继承多个接口。

 

libpig | 阅读全文 | 回复(0) | 引用通告 | 编辑
发表评论:
载入中
 
Powered by Oblog.