2004年10月28日

“纯粹”的面向对象程序设计方法是什么样的:

(1) 所有东西都是对象。可将对象想象成一种新型变量;它保存着数据,但可要求它对自身进行操作。理论上讲,可从要解决的问题身上提出所有概念性的组件,然后在程序中将其表达为一个对象。

(2) 程序是一大堆对象的组合;通过消息传递,各对象知道自己该做些什么。为了向对象发出请求,需向那个对象“发送一条消息”。更具体地讲,可将消息想象为一个调用请求,它调用的是从属于目标对象的一个子例程或函数。

(3) 每个对象都有自己的存储空间,可容纳其他对象。或者说,通过封装现有对象,可制作出新型对象。所以,尽管对象的概念非常简单,但在程序中却可达到任意高的复杂程度。

(4) 每个对象都有一种类型。根据语法,每个对象都是某个“类”的一个“实例”。其中,“类”(Class)是“类型”(Type)的同义词。一个类最重要的特征就是“能将什么消息发给它?”。

(5) 同一类所有对象都能接收相同的消息。这实际是别有含义的一种说法,大家不久便能理解。由于类型为“圆”(Circle)的一个对象也属于类型为“形状”(Shape)的一个对象,所以一个圆完全能接收形状消息。这意味着可让程序代码统一指挥“形状”,令其自动控制所有符合“形状”描述的对象,其中自然包括“圆”。这一特性称为对象的“可替换性”,是OOP 最重要的概念之一。

 

要学会解释对象以及相关概念:
类、实例、函数、接口interface、继承extends、多形性Polymorphism、上溯造型Upcasting、句柄、抽象abstract、,面向对象程序设计OOP、继承器Iterator、单根结构、Java程序片Applet、小服务程序Servlet、

在整个开发过程中,最重要的事情就是:不要将自己迷失!,假如你正在考察一种特殊的方法,其中包含了大量细节,并推荐了许多步骤和文档,那么仍然很难正确判断自己该在何时停止。时刻提醒自己注意以下几个问题:
(1) 对象是什么?(怎样将自己的项目分割成一系列单独的组件?)
(2) 它们的接口是什么?(需要将什么消息发给每一个对象?)

将开发过程划分为四个阶段:
0、拟出一个计划
1、要制作什么
2、如何构建
3、开始创建
4、校订

最好采用列表和基本图表的形式来表达需求,

读完……正在思考整理

惭愧!看到一篇文章是说应聘JAVA程序员的时候,可能碰到的一些基础问题,几乎没有能答得上的。真是惭愧,所以决定一定要加强基础。以《Thinking In Java》这本书的名气,应该不错。

在这里记录一下学习过程,一来督促一下自己,二来可以给别人一些借鉴。

希望也在读这本书的人一起来探讨。

在目录之前,主要有几个部分:

1、作者简介,真的是简介。

2、读者心声:

摘抄一小部分:

写得非常好的一本Java 书我认为您的工作简直可以说“伟大”。我是芝加哥地区Java 特别兴趣组的头儿,已在最近的几次聚会上推荐了您的书和Web 站点。以后每个月开SIG 会的时候,我都想把《Thinking in Java》作为基本的指导教材使用。一般来说,我们会每次讨论书中的一章内容。
(Mark Ertes)

我的话:

现在一些学校研究生的教材就是这本书呢。要是我也能组织大家在现实中(线下)讨论一下这本书就好了。

3、写在前面的话

作者Bruce Eckel首先是将这本书放在网上,让大家都来纠错,等到读者都觉着应该出纸版的时候再出纸版,这的确是个好办法。在这里他还以语言的口气说了一些话:

随着我们网上通信越来越频繁,令人震惊的事情会慢慢发生,而且它们令人吃惊的程度绝不亚于当初工业革命给人带来的震憾。……我们需要认清真正的革命发生在哪里,因为人和人之间的交流变得更方便了——个体与个体之间,个体与组之间,组与组之间,甚至在星球之间。有人预言下一次大革命的发生就是由于足够多的人和足够多的相互连接造成的,而这种革命是以整个世界为基础发生的。Java 可能是、也可能不是促成那次革命的直接因素,但我在这里至少感觉自己在做一些有意义的工作——尝试教会大家一种重要的语言!

4、引言

第一段有价值,摆正读者对JAVA的认识:“只有在考虑‘设计’、而非考虑简单的编码时,才可真正体会到Java 的强大。”但是后面对教学方法和每一章的内容概述就没什么意义了,要想知道就往下读吧。