- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3 章 面向对象(上)
3.1 面向对象的概念
面向对象是令大多数人都只可意会,难以言宣的大概念。我下面的讲解主要是冲着帮你迅
速理解面向对象的内涵而来的,不见得非常严谨和完全正确,但我个人认为是合理的,是我的
体会和认识,我也曾经用过同样的方式,让许多人仿佛一下子就明白了什么是面向对象。什么
是面向对象,这是一个相对概念,是相对面向过程而言的。就象要理解什么是幸福,要先理解
什么是痛苦一样的道理,在讲解面向对象之前,我要先简单介绍一下什么是面向过程。
3.1.1 面向过程
在早期出现的编程语言中,如大家都非常熟悉的C 语言,当我们要用这种语言来定义一个
复杂的数据类型,譬如Windows 窗口时,可以用结构体(struct)来实现,只要在结构体中使
用那些基本的数据类型来定义窗口的大小,位置,颜色,背景等属性就可以了。如果我们要对
一个Windows 窗口进行各种操作,如隐藏窗口,移动窗口,最小化窗口等等,我们要为每个操
作都定义一个函数,这些函数与窗口本身的定义没有任何关系,如HideWindow,MoveWindow,
MinimizeWindow,这些函数都需要接受一个参数,即要操作的窗口。这是一种谓语与宾语的关
系,“隐藏”、“移动”等是谓语,“窗口”是宾语。程序的重心集中在函数(即谓语)上。
3.1.2 面向对象
在C++,java 语言中,我们可以将一个窗口当作一个主体(对象)来看,定义窗口时,除
了要指定在面向过程中规定的那些属性,如大小,位置,颜色,背景等外,还要指定该窗口可
能具有的动作,如隐藏,移动,最小化等。我们在定义窗口时,就要定义好对应这些动作的函
数(也叫方法),如 Hide,Move,Minimize,注意体会这些函数名称与上面的名称的区别,这
是作者刻意这么安排的,让读者更好地去对比,从函数名称上就能看出,这些函数都不再接受
代表窗口的参数。这些函数被调用时,都是以某个窗口要隐藏,某个窗口要移动,某个窗口要
最小化的语法格式来使用的。这是一种主语与谓语的关系,程序的重点集中在主体/对象(主语)
上。虽然读者在下面的讲解中能够发现面向对象的知识远不止这一点(刚才讲的只是面向对象
的一个方面,即封装性,用类封装了数据与函数),真正能体现面向对象的强大优势的地方,是
在面向对象的继承与多态性方面,但作者认为,封装性是面向对象的根源和最根本的属性。
Java 类同其他面向对象的编程语言一样,也支持面向对象(OOP)的三个特征:
封装 (Encapsulation)
继承 (Inheritance)
多态 (Polymorphism)
要想领悟面向对象的思想,不能把学习重点放在术语的死记硬背上,形而上学,而应该把
精力主要放在实践和思考上,通过大量实践去理解和掌握。如果读者到现在还不能完全明白面
向对象是什么,也没关系,学完下面的内容后,再回过头来看吧!
62
3.2 类与对象
面向对象的编程思想力图使在计算机语言中对事物的描述与现实世界中该事物的本来面目
尽可能的一致,类(class)和对象(object)就是面向对象方法的核心概念。类是对某一类事物的
描述,是抽象的、概念上的定义;对象是实际存在的该类事物的个体,因而也称实例(instance)。
如图3.1 所示就是一个典型的说明:
图3.1
其中,汽车设计图就是“类”,由这个图纸设计出来的若干的汽车就是按照该类产生的“对
象”。可见,类描述了对象的属性和对象的行为,类是对象的模板、图纸。对象(Object)是类
(Class)的一个实例(Instance),是一个实实在在的个体,一个类可以对应多个对象。如果
将对象比作汽车,那么类就是汽车的设计图纸。所以面向对象程序设计的重点是类的设计,而
不是对象的设计。
同一个类按同种方法产生出来多个对象,刚开始的状态都应该是一样的,好比按照“奔驰
s600”型设计图纸生产出来的汽车刚开始都是一样的,其中一辆 “奔驰s600”汽车被改装后,
是不会影响到同型号的其他 “奔驰s600”汽车的。但如果修改了
您可能关注的文档
- 2014年一级建造师项目管理考前冲刺重点总结(小抄版).pdf
- 2014年一级建造师项目管理小抄(临考版).pdf
- 2014年一建《项目管理》模考试卷.pdf
- 2014年一建建筑实务小抄(打印版).pdf
- 2014年造价工程师案例分析考试真题及答案.pdf
- 2014年中央电大法律文书02任务.doc
- 2014年中央电大期末考试国民经济核算网考题库字母排版小抄.doc
- 2014年注册测绘师资格考试测绘案例分析真题及解析.pdf
- 2014年最新电大古代汉语专题形成性考.doc
- 2014秋《国际礼仪概论》作业1.doc
- Java编程技术_03面向对象的程序设计.pdf
- Java面向对象程序设计复习题附答案.doc
- JAVA数据库学生管理系统实训报告.doc
- K201409,厦门大学网络教育2014-2015学年第一学期《会计学原理(本科)》课程复习题及答案.doc
- MLJY-YG-QP-CBG-002项目动态成本管理流程.pdf
- MOOC_颠覆与创新_第4次_中国远程教育青年学者论坛_综述_郝丹.pdf
- MOOCs与远程教育运行机制的比较研究_姚媛.pdf
- php与mysql+5程序设计(第2版)_IT168文库.pdf
- QB AHSL ZD 08-招标管理制度.pdf
- sx120812 商业插画在品牌形象设计中的应用研究 - 副本.doc
文档评论(0)