java语言程序设计第

java语言程序设计第

ID:39331231

大小:723.60 KB

页数:53页

时间:2019-07-01

java语言程序设计第_第1页
java语言程序设计第_第2页
java语言程序设计第_第3页
java语言程序设计第_第4页
java语言程序设计第_第5页
资源描述:

《java语言程序设计第》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第二章面向对象(OO)程序设计概念参考书:BruceEckel–ThinkinginJava程序设计的演变机器语言汇编语言面向过程的语言和结构化程序设计程序=算法+数据结构(C)面向对象程序设计程序=对象+消息传递(Java,C++,C#)抽象的进步所有编程语言的最终目的都是提供一种“抽象”方法汇编语言是对基础机器的少量抽象命令式语言(如FORTRAN,BASIC和C)是对汇编语言的一种抽象OOP是更高层的抽象面向对象程序设计方法的来源《大英百科全书》描述了人类在认识和理解现实世界的过程中普遍运用的三个法则:1、区分对象及其属性,例如,区分一棵树和树的大小或它与其它对

2、象的空间关系。2、区分整体对象及其组成部分。例如,区分一棵树和树枝。3、形成并区分不同对象的类。例如,形成所有树的类和所有石头的类,并区分它们。面向对象程序设计方法的特征(1)所有东西都是对象。可将对象想象成一种新型变量;它保存着数据,但可要求它对自身进行操作。理论上讲,可从要解决的问题身上提出所有概念性的组件,然后在程序中将其表达为一个对象。(2)程序是一大堆对象的组合;通过消息传递,各对象知道自己该做些什么。为了向对象发出请求,需向那个对象“发送一条消息”。更具体地讲,可将消息想象为一个调用请求,它调用的是从属于目标对象的一个子例程或函数。(3)每个对象都有自己的

3、存储空间,可容纳其他对象。或者说,通过封装现有对象,可制作出新型对象。所以,尽管对象的概念非常简单,但在程序中却可达到任意高的复杂程度。(4)每个对象都有一种类型。根据语法,每个对象都是某个“类”的一个“实例”。其中,“类”(Class)是“类型”(Type)的同义词。一个类最重要的特征就是“能将什么消息发给它?”。(5)同一类所有对象都能接收相同的消息。这实际是别有含义的一种说法,大家不久便能理解。由于类型为“圆”(Circle)的一个对象也属于类型为“形状”(Shape)的一个对象,所以一个圆完全能接收形状消息。这意味着可让程序代码统一指挥“形状”,令其自动控制所

4、有符合“形状”描述的对象,其中自然包括“圆”。这一特性称为对象的“可替换性”,是OOP最重要的概念之一。计算机世界概念世界现实世界实体抽象数据类型类对象抽象转换抽象实例化白馬非馬論公孙龙是名家的代表人物,他最有名的辩论是“白马非马”的假说。一天,他牵一匹白马出关被阻,公孙龙便以白马非马的命题与之辩论,守关的人辩不过他,公孙龙就牵着马出关去了(或说,他还是不得出关)。公孙龙说,白马为非马者,言白所以名色,言马所以名形也;色非形,形非色也。夫言色则形不当与,言形则色不宜从,今合以为物,非也。如求白马于厩中,无有,而有骊色之马,然不可以应有白马也。不可以应有白马,则所求之马

5、亡矣;亡则白马竟非马。公孙龙的话大意是说:"马"指的是马的形态,"白马"指的是马的颜色,而形态不等于颜色,所以白马不是马。其他声音(论面向对象和结构化)1、许多人一谈到结构化,就非常不屑地说,那是过了时的东西,现在流行的是面向对象,等等.真的是这样吗?我认为没有,结构化的设计思想并没有消失,而是一直在顽强的生存着,以后也会生存下去.结构化的思想和面向对象的思想只是考虑同样一个问题的两个不同角度而已,他们本身并没有那个好那个不好的问题,当然具体到每个系统设计人员,就要受限制与自己所接受的教育,从而可能会有自己的判断和喜好.我曾经接触过几个老资格的程序员,他们在中国刚刚引

6、进计算机时就开始进行大规模的软件编程,他们对于系统的把握和理解确实是非常深刻的,尽管是结构化的.系统分析本身的最终目的,是为了真正理解系统,而采用那个角度,用那种方法来理解系统只是一个手段问题,不是根本问题.2、不敢苟同,你没有意识到两者本质上的不同,结构化方法的缺陷(或者叫硬伤)使得它逐渐被淘汰,3、我来打个比方,面向对象和结构化好比中医和西医一样,只是两种不同的理论体系一样,但病人是一个,他们本质上是不同的,但其处理的问题是一致的.难道中医能看病,就意味着西医不能看病吗?请问,结构化的缺陷何在?4、“天圆地方”是足够正确的,在人们没有见到大海之前 “地心说”是足够

7、正确的,在人们没有感觉到行星轨道的复杂之前 “日心说”是足够正确的,在人们没有感觉到更大星系的存在之前....牛顿力学是足够正确的,在人们没有计算超大尺度和超小尺度之前 结构化也是足够的,在软件开发不得不把“复用”、“构件”摆在重要位置之前5、老资格的结构化程序员确实是>面向对象新手,就象算盘老手速度比计算器新手快一样,有的毛笔老手也会写得比钢笔新手快又好。6、知不知道并不是有了超大超小之后,牛顿力学就不对了.你拿量子力学或者超弦理论来算火车什么时候到站估计永远得不出结果来.只有适用的才是最好的,没有万能药用来打苍蝇估计苍蝇拍比原子弹更好.7、如果

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。