- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]4-java面向对象设计
Java面向对象设计思想 本章主要内容: 1、一切皆对象 一切皆对象。 程序由对象构成。 对象由更小的对象构成。 每个对象有其职责。 对象职责通过它的下属对象的职责实现和下属对象互相协作来实现。 2、从实例体会OOP 开始使用对象 继承的好处 接口可是个利器 1、一切皆对象 对象:是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划和事件。 对象具有状态,一个对象用数值来描述它的状态。 对象具体操作,用来改变对象的状态,操作就是对象的行为。 对象实现了数据和操作的结合,使数据和操作封闭于对象的统一体中。 1.1 一切皆对象 理论上讲,可从要解决的问题身上提出所有概念性的组件,然后在程序中将其表达为一个对象。 当我们进行面向对象的程序设计时,面临的最大一项挑战性就是,如何把问题描述转化为对象架构。 1.2 程序由对象构成 程序是一大堆对象的组合。 例:Light lt = new Light(); 通过消息传递,各对象知道自己该做些什么。 例:lt.on();lt.off();lt.brighten();lt.dim(); 为了向对象发出请求,需向那个对象“发送一条消息”。更具体地讲,可将消息想象为一个调用请求,它调用的是从属于目标对象的一个子例程或函数。 使用一些预先定义好的类时,我们在程序里采用的代码是非常简单和直观的。 1.3 对象由更小的对象构成(1) 许多人认为代码重用是面向对象程序设计提供的最伟大的一种杠杆。 为重复使用一个类,最简单的办法是直接使用那个类的对象。但同时也能将那个类的一个对象置入一个新类。我们把这叫作“创建一个成员对象”。 新类可由任意数量和类的其他对象构成。这个概念叫作“组合”(也叫“包含”)——在现有类的基础上组织一个新类。 所以,尽管对象的概念非常简单,但在程序中却可达到任意高的复杂程度。 1.3 对象由更小的对象构成(2) 对象的组合具有极大的灵活性。新类的“成员对象”通常设为“私有”(Private),这样我们可在不干扰客户代码的前提下,从容地修改那些成员。也可以在“运行期”更改成员,这进一步增大了灵活性。 由于继承的重要性,所以在面向对象的程序设计中,它经常被重点强调。作为新加入这一领域的程序员,或许早已先入为主地认为“继承应当随处可见”。沿这种思路产生的设计将是非常笨拙的,会大大增加程序的复杂程度。相反,新建类的时候,首先应考虑“组合”对象;这样做显得更加简单和灵活。利用对象的组织,我们的设计可保持清爽。 1.4 每个对象都有其职责(1) “接口”(Interface)规定了可对一个特定的对象发出哪些请求。然而,必须在某个地方存在着一些代码,以便满足这些请求。这些代码与那些隐藏起来的数据便叫作“隐藏的实现”。对象的职责就是决定如何对这条消息作出反应(执行相应的代码)。 每个对象都有一种模版。 类:具体相同或相似性质的对象的抽象就是类。因此,对象的抽象是类,类的具体化是对象,也可说实例是对象。类具体属性和操作。 1.4 每个对象都有其职责(2) 一个类最重要的特征就是“能将什么消息发给它?”。 Java 采用三个显式关键字以及一个隐式关键字来设置类边界:public,private,protected 以及暗示性的friendly。若未明确指定其他关键字,则默认为后者。这些关键字的使用和含义都是相当直观的,它们决定了谁能使用后续的定义内容。 1.5 对象职责由下属对象协作实现(1) 我们费尽心思做出一种类后,假如不得不又新建一种类,令其实现大致相同的功能,那会是一件非常令人灰心的事情。但若能利用现成的类,对其进行“克隆”,再根据情况进行添加和修改,情况就显得理想多了。“继承”正是针对这个目标而设计的。但继承并不完全等价于克隆。 1.5 对象职责由下属对象协作实现(2) 有两种做法可将新得的衍生类与原来的基础类区分开。 第一种做法:为衍生类添加新函数(功能)。一般都是意识到基础类不能满足我们的要求。新类“类似”原类 第二个办法是改变基础类一个现有函数的行为。我们将其称作“改善”那个函数。只需为衍生类的函数建立一个新定义即可。我们的目标是:“尽管使用的函数接口未变,但它的新版本具有不同的表现”。新类“等价”原类 1.5 对象职责由下属对象协作实现(3) 由于类为“圆”(Circle)的一个对象也属于类为“形状”(Shape)的一个对象,所以一个圆完全能接收形状消息。 这意味着可让程序代码统一指挥“形状”,令其自动控制所有符合“形状”描述的对象,其中自然包括“圆”。这一特性称为对象的“可替换性”,是OOP 最重要的概念之一。 若通过继承增添了一种新类,如“三角形”,那么我们为“形状”编写的代码不用改变。所以说程
您可能关注的文档
- 复洲湾车站创优规划修改.doc
- [中学教育]关于科技教育的生命意义及其校本研究.doc
- 外国文学史笔记朱维之+王立新.doc
- [五年级语文]《范仲淹的故事》课件语文S版五年级下册课件.ppt
- [初一数学]七年级数学整式的加减练习题.doc
- [其他资格考试]自考环境与资源保护法学试题.doc
- [初三政史地]第二单元 第 4课 亚洲封建国家的建立导学案.doc
- [初中一年级]孔乙己为您服务教育网3.ppt
- [司法考试]张明楷教授案例选极似司考试题哟_3_20.doc
- [医药]CT在肺癌鉴别中的应用.doc
- 新高考生物二轮复习讲练测第6讲 遗传的分子基础(检测) (原卷版).docx
- 新高考生物二轮复习讲练测第12讲 生物与环境(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第3讲 酶和ATP(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第9讲 神经调节与体液调节(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第11讲 植物生命活动的调节(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第8讲 生物的变异、育种与进化(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第5讲 细胞的分裂、分化、衰老和死亡(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第5讲 细胞的分裂、分化、衰老和死亡(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第12讲 生物与环境(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第11讲 植物生命活动的调节(检测)(原卷版).docx
文档评论(0)