第5章类的重用

合集下载

第五章(2)面向对象程序设计同步练习

第五章(2)面向对象程序设计同步练习

第五章面向对象程序设计一、选择题1、面向对象程序设计采用了以为中心的软件构造方法。

A)数据结构B)数据流C)功能分析D)算法2、下面关于属性、方法和事件的叙述中,错误的是______。

A)属性用于描述对象的状态,方法用于表示对象的行为B)基于同一个类产生的两个对象可以分别设置自己的属性值C)事件代码也可以像方法一样被显示调用D)在新建一个表单时,可以添加新的属性、方法和事件3、在下面关于面向对象数据库的叙述中,错误的是______。

A)每个对象在系统中都有唯一的对象标识B)事件作用于对象,对象识别事件并作出相应反应C)一个子类能够继承其所有父类的属性和方法D)一个父类包括其所有子类的属性和方法4、每个对象都可以对一个被称为事件的动作进行识别和响应。

下面对于事件的描述中,_____是错误的。

A)事件是一种预先定义好的特定的动作,由用户或系统激活B)VFP基类的事件集合是由系统预先定义好的,是唯一的C)VFP基类的事件也可以由用户创建D)可以激活事件的用户动作有按键、单击鼠标、移动鼠标等5、_____是面向对象程序设计中程序运行的最基本实体。

A)对象B)类C)方法D)函数6、创建类时首先要定义类的。

A)名称B)属性C)事件D)方法7、有关窗口的操作,是正确的。

A) deactivate window命令挂起的窗口将从内存中清除B) show window命令显示的窗口不一定是活动窗口,但活动窗口一定是显示窗口C) hide window命令将活动窗口在屏幕上隐藏起来,输出仍然面向该窗口D)用release window删除的窗口还可以再重新显示或激活8、有关窗口的叙述,是正确的。

A) ACTIVATE WINDOW <WINDOW name> 命令激活窗口后,@…SAY的坐标是相对屏幕的物理坐标B)当多次使用激活窗口命令时,则最后一个被激活的窗口是当前窗口C)当前窗口是无法改变的D)窗口休眠后第一个激活的窗口变为当前窗口9、以下属于窗口类控件的是。

现代交换技术--第5章智能交换精讲

现代交换技术--第5章智能交换精讲

• 分布功能平面描述了智能网中各功能实
体(FE,Functional Entity)的划分及实 现,说明了每个功能实体FE中可以完成哪 些功能实体动作(FEA,Functional Entity Action),以及在这些功能实体之间进行 信息交互的信息流。
• 如图5-5所示,分布功能平面定义了下列
5.2.4
物理平面
• 分布功能平面定义的功能实体FE、功能实
体动作FEA以及信息流都与物理实现无关。
• 分布功能平面提供的是一个逻辑模型,只
说明一个功能实体需要具有什么样的功能, 并不涉及实现这些功能的语言或硬件平台。
• 物理平面(PP,Physical Plane)是从网
络实施的角度来考虑的,它描述了如何将 分布功能平面上定义的功能实体映射到实 际的物理设备上,每实体。
• 全局功能平面定义了一系列的业务独立
构件(SIB,Service Independent Building Block),这些SIB都是标准的、可重用的 功能块,其功能涵盖了网络中鉴权、算法、 号码翻译、用户交互、连接、数据查询和 修改、计费等所有基本能力。
• 利用这些标准的业务独立构件,就可以
各种业务,使新业务易于规定和设计;二 是网络实现与业务的提供相独立。
• 即提供业务时可以利用各种分布式的网
络功能,可以跨越若干网络,并且可以独 立于这些网络的具体实现。
• 由于业务独立于网络基础设施,因此,
物理网络的演变不影响现有业务,网络中 的物理设备可以由不同厂商提供。
IN service example: 800 service
图5-2 智能网的应用领域
5.1.2
智能网的基本概念
• CCITT(ITU-T的前身)第11研究组

C++第5章习题参考答案

C++第5章习题参考答案

1.什么是类的继承与派生?继承性是面向对象程序设计的第二个重要特性,通过继承实现了数据抽象基础上的代码重用。

继承是对许多问题中分层特性的一种自然描述,因而也是类的具体化和被重新利用的一种手段,它所表达的就是一种对象类之间的相交关系。

它使得某类对象可以继承另外一类对象的特征和能力。

继承所具有的作用有两个方面:一方面可以减少代码冗余;另一方面可以通过协调性来减少相互之间的接口和界面。

通过继承方式定义的子类也称为派生类。

2.类的三种继承方式之间的区别是什么?类的继承方式有public(公有)继承、protected(保护)继承和private(私有)继承三种。

对于不同的继承方式,会导致基类成员原来的访问属性在派生类中有所变化。

表5.1列出了不同继承方式下基类成员访问属性的变化情况。

表5.1 不同继承方式下基类成员的访问属性说明:该表第1列给出3种继承方式,第1行给出基类成员的3种访问属性。

其余单元格内容为基类成员在派生类中的访问属性。

从表中可以看出:(1) 基类的私有成员在派生类中均是不可访问的,它只能由基类的成员访问。

(2) 在公有继承方式下,基类中的公有成员和保护成员在派生类中的访问属性不变。

(3) 在保护继承方式下,基类中的公有成员和保护成员在派生类中均为保护的。

(4) 在私有继承方式下,基类中的公有成员和保护成员在派生类中均为私有的。

需要注意的是:保护成员与私有成员唯一的不同是当发生派生后,处在基类protected区的成员可被派生类直接访问,而私有成员在派生类中是不可访问的。

在同一类中私有成员和保护成员的用法完全一样。

3.派生类能否直接访问基类的私有成员?若否,应如何实现?派生类不能直接访问基类的私有成员。

具体实现方式:(1) 在类定义体中增加保护段为了便于派生类的访问,可以将基类私有成员中需提供给派生类访问的部分定义为保护段成员。

保护段成员可以被它的派生类访问,但是对于外界是隐藏起来的。

这样,既方便了派生类的访问,又禁止外界对它的派生类访问。

UML基础及Rose建模实用教程课后习题及答案

UML基础及Rose建模实用教程课后习题及答案

UML根底与Rose建模实用教程课后习题及答案第1章面向对象概述1. 填空题〔1〕软件对象可以这样定义:所谓软件对象,是一种将状态和行为有机结合起来形成的软件构造模型,它可以用来描述现实世界中的一个对象。

〔2〕类是具有一样属性和操作的一组对象的组合,即抽象模型中的“类〞描述了一组相似对象的共同特征,为属于该类的全部对象提供了统一的抽象描述。

〔3〕面向对象程序的根本特征是抽象、封装、继承和多态。

2. 选择题〔1〕可以认为对象是ABC。

〔A〕某种可被人感知的事物〔B〕思维、感觉或动作所能作用的物质〔C〕思维、感觉或动作所能作用的精神体〔D〕不能被思维、感觉或动作作用的精神体〔2〕类的定义要包含以下的要素ABD。

〔A〕类的属性〔B〕类所要执行的操作〔C〕类的编号〔D〕属性的类型〔3〕面向对象程序的根本特征不包括B。

〔A〕封装〔B〕多样性〔C〕抽象〔D〕继承〔4〕以下关于类与对象的关系的说法不正确的选项是A。

〔A〕有些对象是不能被抽象成类的〔B〕类给出了属于该类的全部对象的抽象定义〔C〕类是对象集合的再抽象〔D〕类用来在存中开辟一个数据区,并存储新对象的属性3. 简答题〔1〕什么是对象?试着列举三个现实中的例子。

对象是某种可被人感知的事物,也可是思维、感觉或动作所能作用的物质或精神体,例如桌子.椅子.汽车等。

〔2〕什么是抽象?抽象是对现实世界信息的简化。

能够通过抽象将需要的事物进展简化、将事物特征进展概括、将抽象模型组织为层次构造、使软件重用得以保证。

〔3〕什么是封装?它有哪些好处?封装就是把对象的状态和行为绑在一起的机制,使对象形成一个独立的整体,并且尽可能地隐藏对象的部细节。

封装有两个含义;一是把对象的全部状态和行为结合在一起,形成一个不可分割的整体。

对象的私有属性只能够由对象的行为来修改和读取。

二是尽可能隐蔽对象的部细节,与外界的联系只能够通过外部接口来实现。

通过公共访问控制器来限制对象的私有属性,使用封装具有以下好处:防止对封装数据的未授权访问、帮助保护数据的完整性、当类的私有方法必须修改时,限制了在整个应用程序的影响。

大学计算机基础第五章

大学计算机基础第五章

大学计算机基础第五章第五章软件技术基础1.程序设计语言(1)机器语言和汇编语言由计算机硬件系统可以识别的指令组成的语言称为机器语言。

汇编语言是将机器指令映射为一些可以被人读懂的助记符。

由于计算机只能识别机器语言,所以汇编语言通常需要通过汇编程序翻译为机器语言。

汇编语言的翻译软件称为汇编程序,它可以将程序员写的助记符直接转换为机器指令,然后由计算机去识别和执行。

用机器语言编写的程序是计算机可以直接执行的程序。

用机器语言编写的程序,代码长度短,执行效率高。

但是,这种语言的缺点也很明显。

最主要的是编写机器语言程序必须要熟知CPU 的指令代码,编写程序既不方便,又容易出错,调试查错也非常困难。

而且编写的程序只能在特定的机器上运行,没有通用性。

(2)高级语言高级语言源程序翻译为指令代码有两种做法:编译或者解释。

编译通过编译程序来完成。

解释则是通过解释程序完成。

解释的结果产生可以直接执行的指令。

编译的结果是得到目标程序。

目标程序也是要经过连接才会得到可执行程序目前应用比较广泛的几种高级语言由FORTRAN/BASIC/PASCAL/C等。

(3)面向对象的语言(4)未来的语言2、语言处理程序语言处理程序是把源程序翻译成机器语言的程序,可分为三种:汇编程序、编译程序和解释程序。

(1)汇编程序把汇编语言源程序翻译成机器语言程序的程序称为汇编程序,翻译的过程称为汇编。

汇编程序在翻译源程序时,总是对源程序从头到尾一个符号一个符号地进行阅读分析,一般用两遍扫描完成对源程序的加工转换工作。

汇编语言在翻译的同时,还对各种形式的错误进行检查和分析,并反馈给用户,以便修改。

反汇编程序也是一种语言处理程序,它的功能与汇编程序相反,它能把机器语言程序转换成汇编语言程序。

(2)编译程序编译程序是把高级语言源程序(如Fortran、Pascal、C 等)翻译成目标程序(机器语言程序)的一种程序,翻译的过程称为编译。

(3)解释程序解释程序也是一种对高级语言源程序进行翻译处理及的程序。

教材第五章数据集和数据集的管理1

教材第五章数据集和数据集的管理1

第五章 数据集的处理5.1 数据集定义z/OS 数据集是存储在一个磁盘卷或者多个磁盘卷上,逻辑相关的数据记录的集合。

例如, 一个数据集可以是一个源程序、一个宏库或一个能够被应用程序使用的数据记录文件。

用户可以在终端上打印或显示数据集。

逻辑记录是应用程序使用的基本信息单元。

数据可以存储在直接访问存储设备上(DASD) ,磁带卷或者光媒体上。

正如前面提到的, DASD适用于磁盘或与磁盘类似的设备。

所有类型的数据集都可以存储在DASD上,但是只有顺序数据集能够存储在磁带上。

我们将在后面讨论数据集的类型。

5.2 数据集命名每当用户分配一个新的数据集时,必须给数据集一个唯一的名字。

一个数据集名可能是一个名字段, 或一系列联合的名字段。

每个名字段描述了一个限定标准,例如,数据集名TECH01.COBOL.DATA是由三个名字段组成。

左边的第一个名字段被称为高级限定词(HLQ-high-level qualifier),右边的最后一个名字段是最低级的限定词(LLQ- lowest-level qualifier)。

每个名字段的长度可以是一到八个字符,名字段的第一个字母必须是字母(A到Z)或national符号(#,@,$),剩下的七个字符是任一字母、数字(0-9)、national符号或一个连接符号(-)。

名字段之间用句点(.)相隔。

包括所有的名字段和句点,数据集名的长度不能超过44个字符。

因此,一个数据集名最多可以由22个名字段组成。

5.2.1 HLQ命名约定一个数据集的HLQ是由安全系统控制的,其余的名字段也有许多命名约定,这些是约定而不是标准,但是它们被广泛地使用,它们包括下列各项:(1)名字中的字符LIB表示数据集是一个库,字符PDS也可以表示一个库,但它较少使用。

(2)名字中的字符CNTL、JCL或JOB表示数据集中包含JCL( 但是不一定专用于JCL)。

(3) 名字中的字符LOAD、LOADLIB或LINKLIB表示数据集中包含可运行的模块(一个具有z/OS可执行模块的库必须是单独的可执行模块)。

JSP程序设计课后习题答案

JSP程序设计课后习题答案第⼀章 JSP概述1-1 JSP的全称是什么?JSP有什么优点?JSP与ASP、PHP的相同点是什么?JSP的全称是Java Server Pages。

优点:跨平台、分离静态内容和动态内容、可重复使⽤的组件、沿⽤了Java Servlet的所有功能、具有预编译性。

共同点:可以在页⾯中加⼊脚本代码来⽣成动态内容。

1-2 JSP中可重复使⽤的组件有哪些?JavaBean组件、JSP的标准标签和⾃定义标签。

1-3 什么是JSP的预编译特征?预编译是JSP的另⼀个重要的特性。

JSP页⾯在被服务器执⾏前,都是已经被编译好的,并且通常只进⾏⼀次编译,即在JSP页⾯被第⼀次请求时进⾏编译,在后续的请求中如果JSP页⾯没有被修改过,服务器只需要直接调⽤这些已经被编译好的代码,这⼤⼤提⾼了访问速度。

1-4 开发JSP程序需要具备哪些开发环境?Web浏览器、Web服务器、JDK开发⼯具包以及数据库。

1-5 在成功安装JDK后,需要配置哪些环境变量?JAVA_HOME变量、Path变量、CLASSPATH变量1-6 Tomcat的默认端⼝、⽤户名和密码分别是什么?端⼝为“8080”、⽤户名为“admin”、密码为空。

1-7 本章介绍的⽤来开发JSP程序的开发⼯具是什么?Eclipse1-8 开发JSP程序可采⽤哪⼏种开发模式?分别介绍它们的优缺点。

单纯的JSP页⾯编程:优点:通过应⽤JSP中的脚本标志,可直接在JSP页⾯中实现各种功能。

缺点:⼤部分的Java代码与HTML代码混淆在⼀起,给程序的维护和调试带来很多的困难。

JSP+JavaBean编程优点:jsp与javabean的结合,使web程序更加的直观,使⽤简单,不⽤于后台进⾏交互,直接在前端处理业务逻辑,更快速。

缺点:性能不好,jsp作为web的前端程序包含了太多的业务逻辑,给前端jsp造成了压⼒。

不便于维护。

JSP+Servlet+JavaBean编程优点:能够更好的实现表⽰层,逻辑层和数据访问层的分离。

【计算机辅助设计】Revit第五章 自定义族类型

5 自定义族类型建筑设计最可贵之处就是它的创新性。

从这个意义说,建筑设计软件最可贵的地方就是要适应建筑设计的不断创新。

Revit为建筑设计创新提供了舞台,自定义族就是很好的创新手段。

实际的工程项目往往都有其特殊性,尽管Revit提供了大量可用于诸多项目的预定义族,但往往还是不能完全满足项目的要求,这时就需要创建自定义族类型。

比如建筑师需要设计一个窗台突出墙外600毫米的凸窗,而在Revit系统提供的构件族中没有提供此类的窗,这时就需要考虑创建自定义的族类型了。

Revit 自定义族体现了Revit的扩展能力,为用户提供了不用编写程序而扩展其应用的机制。

一般来说,构件类型定义是在项目外建造,然后再被载入的。

因此,为了最终完成项目中构件对象的设计,需要存在一个既统一又分离的工作环境。

在Revit 中,这种环境(或者是工具)就是“族编辑器”。

族编辑器就像一个与整个Revit系统分离出来且相关的构件车间,用来处理自定义构件。

族编辑器可以对模型中的设计部件进行创建和测试,待创建后交付给模型建立系统使用。

考察Revit与传统的CAD应用模式的区别,Revit工作更类似于在构件库中挑选合适的构件类型,以此作为模板生成具体建筑构件,然后将其装配成整个建筑模型。

如果已有的构件库中没有所需的构件类型,那么就要考虑创建合适的类型模板,然后根据此模板创建符合要求的建筑构件。

虽然可以在项目的范围内部创建一个特定的构件并使用它,这称为内建族,但内建族仅可用于该项目范围内部,并且不能被导出。

更具普遍意义的做法是考虑构件应用的广泛性和可重用性而创建的构件族,相同几何特征或结构的构件可能被归结为一个族,同一个族可以包括不同的尺寸类型。

比如设计了一个双扇平开窗,上面带有半圆形亮子的窗族,可能有宽1200毫米、1500毫米、1800毫米等多种类型,但都可以在一起创建一个新的窗族,然后将其载入到项目中应用。

这样做的结果是可以根据需要得到不同种类的窗构件,同时,该窗族可以被载入到不同的项目中应用。

第5章sequence机制

5、sequence机制如果发现错误,或有建议,请联系zhangqiang1227@ 735.s equence机制如果说transaction那么sequence UVM 验证平台中,sequence负责transaction的产生,并通过driver 则根据transactionsequence中下功夫。

验证中要对DUT施加以不同的激励,也就是施加不同的case,在UVM中,不同的case的差异主要就是体现在sequence的不同上。

通过控制sequence,可以完美的产生各种不同的激励。

sequence的另外一个重要的作用就是控制整个验证平台的关闭。

在第三章的时候已经说过了控制验证平台关闭的方法。

读完本章,想必读者会对验证平台的关闭有了更深的了解。

本章第一节介绍sequence的概念,第二节说明使用uvm_do宏来构建sequence,第三节介绍virtual sequence的使用。

5.1. UVM中的sequence机制sequence是什么?经过第一章之后,相信读者已经大体上有了一个印象,本节将会详细的介绍一下sequence机制。

74 如果发现错误,或有建议,请联系zhangqiang1227@5.1.1. 激励信息的产生与驱动的分离在第三章中,UVM 把整个验证平台的运行过程分成了不同的phase ,其目的就是为了保证在特定时间做特定事情,形成规范化,制度化,从而提高效率。

这种从乱中理出思路,通过分类,来保证易用性的理念是UVM 一直推崇的。

UVM 中,sequence 的设计也几乎遵循相同的设计哲学,它把数据流(激励信息)的产生从其它部分完全独立出来,从而提高了其它部分的可重用性,增加了数据流产生的灵活激励的产生与驱动都是在一个initial 模块中产生的。

这种方法易用性差,要产生复杂的激励比较难。

读完了前四章后,大家对uvm_component 的概念比较熟悉了,并且也了解了一些常用的uvm_component 。

《大学生职业生涯规划》第5章进行职业决策


理性模型与非理性模型
理性模型把明智的决策者看作是一个“客观的 科学家”,是系统的、独立的和理智的,确保 个体获得最终目标的最大化,强调个体决策。
非理性模型则认为决策过程充满了模糊性和不 确定性,强调决策过程中环境因素的作用,把 对个体有意义的环境因素考虑在内。
(二)人职匹配理论与职业选择
1.职业选择的内涵 2.人职匹配理论
• 相信自己源自内心深处的直觉,一切跟着感觉走。
3.挣扎型
• 顾虑太多,前怕狼后怕虎
4.麻木型
• 外部世界的变化失去敏感,不愿为自己的职业发展多动脑 子。
5.冲动型
• 不经过策划和准备,直接做出决定,缺乏思考和分析
6.拖延型
• 船到桥头自然直,车到山前必有路 。
7.顺从型
• 让组织或其他人为自己做决定,按照别人的思路去发展自己
• 父母都在老家,父亲(退休的公务员)和母亲 (普通退休干部)身体都不是很好,需要时常 回去看望他们;对生活要求不高,但需要体面 而丰富的生活,姐姐前几年研究生毕业就直接 出国留学了,有点羡慕;我很爱我的女朋友, 我们准备结婚,但时机尚未成熟;身体健康, 心理较正常;性格较外向,情绪较乐观;好奇 心较强,学习能力不错。
执行
Execution 采取行动解决问题
分析
Analysis 考虑各种可能性
评价
Value 对选项排列次序
综合
Synthesis 形成选项
• 在沟通阶段,个体应该意识到需要作出就业决 定,并找出目前状态和理想状态之间的差距。
• 在分析阶段,个体需要利用已获取的自我知识 和就业选择知识分析和理解现存状态和理想状 态之间的差距,思考在作出重要决策时应使用 的典型方法,自身积极和消极的想法将影响问
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 继承的语法
class childClass extends parentClass { //类体 }
10
• 一个电子产品商店里卖各种电子产 品,可能有Computer、Stereo、 Software等诸类产品。以下是几种 产品类信息: • 产品Product有的属性信息包括: –产品号(number) –种类(category) –名称(name) –价格(price)
第5章 类的重用
1
主要内容
5.1 为什么需要类的重用 5.2 重用的方式之一——继承 5.3终结类与终结方法 5.4 抽象类与抽象方法 5.3 重用的方式之二——组合
2
5.1 为什么需要类的重用 • 代码重用是Java最引人注目的功 能之一; • 可以通过创建新类来复用代码, 而不必再重头开始编写; • 可以使用别人已经开发并调试 好的类。
31
• 抽象方法:用abstract来修饰一个方 法时,该方法叫做抽象方法。 –抽象方法必须被重写; –抽象方法只有声明,不能有实现; –含有抽象方法的类必然是抽象类。
32
• 抽象类与抽象方法声明格式如下:
abstract class <类名>{ 成员变量;
方法( ){方法体}; //一般方法 abstract 方法( ); //抽象方法定义
3
• 有两种方法可以达到这一目的: –在现有类的基础上创建新类,在 其中添加新代码,这种方法称为 继承。 –在新类中使用其他类的对象。即 新类由多种类的对象组成,这种 方法称为组合。
4
5.1 重用方式之一——类的继承
–当创建一个类时,总是在继承, 除非已明确指出从其他类中继承, 否则就是隐式地从Java的根类 Object进行继承。 –通过继承,可以根据已有类来定 义新类,新类拥有已有类的所有 功能。
Chess.java:6: Can't subclass final classes: class BetterManner class BetterManner extends Manner{ }
30
5.4 抽象类与抽象方法
• 抽象类:用abstract关键字来修饰一 个类时,该类叫做抽象类
–抽象类不能创建对象; –它只能作为其它类的父类,这一点与 final类正好相反。
36
组合的语法
• 组合的语法很简单,只要把已存在类的 对象放到新类中即可。
11
• 计算机Computer除具有产品基本信息外, 还可能具有下面的属性: –内存(memory) –处理器(ProcessorName) • 笔记本电脑Laptop除具有产品基本信息外 ,还可能具有下面的属性: –厚度(thickness) –重量(weight)
12
• 根据以上信息,我们首先抽象出类Product, 它 派生出子类 Computer, Computer 又派生出它 的子类Laptop, 这三个类的关系图如下:
Product
Computer
Laptap
13
• Product, Computer, Laptop UML类图
14
• 【例5-1】实现Product 、Computer和 Laptop三个类的继承关系。
MyEclipse下的UML
• 在file->new->others->MyEclipse>UML下针对相应的文件建立UML model repository。
覆盖方法的调用
//DemoBike.java public class DemoBike { public static void main( String args[ ] ) { SpeedBike abike = new SpeedBike( ); abike.presshorn(); abike.ride(); abike.speedup(); } }
25
• 该程序的输出显示了自动调用:
Cat constructor CartoonCat constructor SuperStar constructor • 可以看出,即使没有为Cartoon()创建一 个构造方法,编译器也会为我们自动合 成一个默认构造方法,并发出对父类构 造方法的调用。
26
17
public class A { public int puba = 5 private int priv = 6; protected int protect = 7; public int getpriv() { return priv; } } public class B extends A { public int pubb; public void tryVariables() { System.out.println(puba); //允许 System.out.println(priv); //不允许 System.out.println(getpriv()); //允许 System.out.println(pubb); //允许 } }
7
继承的例子
Product
Cumputer
: Stereo
Software
Computer-Stereo (NO!NO!)
8
——is_a关系
• 子类对象与父类对象存在‚IS A”(或‚is kind of”)的关系
Product
Parent Class
Computer
Child Class
9
5.2.2 继承的语法
}
–抽象方法仅有方法头,而没有方法体和操 作实现 –具体实现在子类里完成 –抽象类可以包含其他非抽象方法
33
抽象类与抽象方法
【例5-5】
abstract class Shape { abstract float area();//方法声明 }
class Circle extends Shape { public float r; Circle(float r) { this.r = r; //this指"这个对象的" } public float area() //方法实现 { return (float) (3.14*r*r); } }
以上程序表示在子类里使用到父类的构造方法,super必须 是子类构造方法的第一条语句。
见【例5-3】
23
5.2.5 继承关系下的构造方法
• 在子类的构造方法中,如果没有明确指明 调用父类的构造方法,Java会自动插入对父 类默认构造方法(无参的构造方法)的调 用。 • 下面这个例子展示了继承的应用:
class Rectangle extends Shape { public float width,height; Rectangle (float w, float h) { width = w; height = h; } public float area() //方法实现 { return width*height; } }
5
–父类(super class)是所有子类 (derived class)的公共属性及方法的 集合,子类则是父类的特殊化。
–Java只6
5.2.1
父类和子类
• 父类(base class) –被直接或间接继承的类 • 子类(derived-class) –继承所有祖先的状态和行为 –子类可以增加变量和方法 –子类也可以覆盖(override)继承的方 法
34
【例5-6】为电子产品商店的产品添加广 告功能 。
需注意的问题 • 一个抽象类的子类如果不是抽象类, 则它必须为父类中的所有抽象方法 写出方法体,即重写父类中的所有 抽象方法
35
5.5 重用方式之二——类的组合 • 类的组合 –类重用的另一种方式; –Java的类中可以有其他类的对象作 为成员,这便是类的组合
18
当子类中声明了与父类中相同 的成员变量名,则从父类继承 的变量将被隐藏。
class Parent { String name; } class Child extends Parent { String name; }
19
5.2.4 子类继承父类中的方法
• 子类只继承父类中非private的成员方 法 • 子类的成员方法和父类的成员方法同 名时,父类的成员方法被子类的成员 方法覆盖(Override)。
• 带参数的构造方法:如果想调用一 个带参数的基类构造方法,就必须 用关键字super显示地编写基类构造 方法的语句。 • 【例5-4】
27
5.3 终结类与终结方法 final class & final method
• 终结类与终结方法
–被final修饰符修饰的类和方法
–终结类不能被继承
–终结方法不能被当前类的子类重写
• 建好后,自动显示出MyEclipse UML perspective,可以设计并创建UML类图。 • 从已有的代码转换为类图:点击主菜单 下的UML->Reverse engineer UML from Java即可生成相应的类图。
16
5.2.3 子类继承父类的数据成员 –子类只继承父类中非private 的数据成员。 –子类不能直接访问从父类中 继承私有属性及方法,但可通 过公有(及保护)方法进行访 问。
24
class Cat { Cat() { //默认构造方法 System.out.println("Cat constructor"); } } class CartoonCat extends Cat { //默认构造方法 CartoonCat(){ System.out.println("CartoonCat constructor"); } } class SuperStar extends CartoonCat{ //默认构造方法 SuperStar() { System.out.println("SuperStar constructor");} } public class OnShow{ public static void main(String[] args) { SuperStar garfield = new SuperStar(); } }
相关文档
最新文档