Chapter 6 Reusing Classes.

Slides:



Advertisements
Similar presentations
第六章 数组与字符串 §6.1 数组 §6.2 字符串. §6.1 数组 数组的创建 ( 一维数组和二维数组;基本数据类型和 复合数据类型) 1. 指定数组名称、数据类型 type var_name[]; 如: char s[]; Object o[]; int i[][];
Advertisements

METHOD OVERRIDING Sub class can override the methods defined by the super class. Overridden Methods in the sub classes should have same name, same signature.
第八章 轴系零件 § 8-1 键、销及其连接 一、键连接 二、销连接 § 8-2 轴 一、轴的分类和应用 二、轴的结构和轴上零件的固定
Nutch 二次开发介绍.  1.Nutch 二次开发中重点环节介绍 1.1 信息源选择及规范制定 1.2 信息预处理 1.3 索引构建 1.4 排序规则制定 1.5 查询系统及用户界面  2.Nutch 中的 plugin 介绍 2.1 Plugin 介绍 2.2 页面解析.
第 12 章位运算 C 语言兼具高级语言及低级语言的特性,因此 适合编写系统软件。 C 语言具备低级语言的特性 就在于它能直接对硬件进行操作,即位运算。 所谓位运算是指,按二进制位进行的运算。 例如,将一个存储单元中各二进位左移或右移一 位等。
PHPCMS 使用指南及二次开发向导 --- 系统设置篇 PHPCMS 网络培训课程 --- 系统设置篇 PHPCMS 项目部 王官庆制作 系统相关设置 1. 站点管理 2. 发布点管理 3. 系统其它设置 管理员设置 1. 角色定义 2. 管理员管理.
LOGO 文献管理软件 NoteExpress 简介 《文献管理与信息分析》课程系列之九中国科学技术大学.
计算机 在分析化学的应用 ( 简介 ) 陈辉宏. 一. 概述 信息时代的来临, 各门学科的研究方法都 有了新的发展. 计算机的介入, 为分析化学的进展提供了 一种更方便的研究方法.
编译程序 构造原理和实现技术 授课教师:吕江花. 第一章 编译程序概述 主要内容: 几个基本概念 编译器的工作过程概述 编译器各个阶段的功能描述 编译程序的实现途径.
主要内容  LR(0) 分析. 0 S→  E # E→  E+T E→  T T→  id T→  ( E ) 1 S→E  # E→E  +T 5 T→id  3 E→E+  T T→  id T→  (E) 4 E→E+T  9 E→T  6 T→(  E) E→
嵌入式操作系统 陈香兰 Fall 系统调用 10/27/09 嵌入式 OS 3/12 系统调用的意义  操作系统为用户态进程与硬件设备进行交互提供 了一组接口 —— 系统调用  把用户从底层的硬件编程中解放出来  极大的提高了系统的安全性  使用户程序具有可移植性.
第 4 章 抽象解释 内容概述 以一种独立于编程语言的方式,介绍抽象解释的 一些本质概念 – 将 “ 程序分析对语言语义是正确的 ” 这个概念公式 化 – 用 “ 加宽和收缩技术 ” 来获得最小不动点的较好的 近似,并使所需计算步数得到限制 – 用 “ 伽罗瓦连接和伽罗瓦插入 ” 来把代价较大的属 性空间用代价较小的属性空间来代替.
吉林大学远程教育课件 主讲人 : 杨凤杰学 时: 64 ( 第六十二讲 ) 离散数学. 最后,我们构造能识别 A 的 Kleene 闭包 A* 的自动机 M A* =(S A* , I , f A* , s A* , F A* ) , 令 S A* 包括所有的 S A 的状态以及一个 附加的状态 s.
Viterbi 算法 viterbi 实验要求:见 experiment3.doc – 将 TRUNC_LENGTH 取值为 4 , 8 , 16 , 32 , 64 ,看看程序运行结果会有什么变化并分析原 因。 – 将 NUMSIM 取值为 10 1 , 10.
第六章 RDBMS 的扩展 关系模型中概括与聚合的扩展 支持共享与递归的分子对象概念 关系查询语言 QUEL 的扩展及其支持 关系模型中的抽象数据类型 XSQL 语言的扩展 嵌套的关系模型 NF2.
第六章 犯罪客观方面. 第一节 犯罪客观方面的概述 一、犯罪客观方面的概念  犯罪客观方面,是指刑法规定的,说明行 为对刑法所保护的社会关系造成侵害的客 观外在表现。
C 语言程序设计 2008 版. C 语言程序设计 教学要求  掌握程序设计语言的基本知识  常用算法  初步的程序设计能力 学习方法  自主学习  重视上机实践.
第十一章 曲线回归 第一节 曲线的类型与特点 第二节 曲线方程的配置 第三节 多项式回归.
城市管理学 City Management 主讲 关静 主讲 关静 吉林大学行政学院 吉林大学行政学院.
线性代数习题课 吉林大学 术洪亮 第一讲 行 列 式 前面我们已经学习了关 于行列式的概念和一些基本 理论,其主要内容可概括为:
第十章 企业价值评估 第一节 企业价值评估及其特点 企业价值评估及其特点 第二节 企业价值评估的范围界定 第三节 转型经济与企业价值评估 第四节 收益法在企业价值评估中的应用 第五节 市场法和成本法在企业价值评估中的应用.
第 4 章 过程与变量的作用范围. 4.1 Visual Basic 的代码模块 Visual Basic 的应用程序是由过程组成的, 过程代码存放在模块中。 Visual Basic 提供了 三类模块,它们是窗体模块、标准模块和类 模块。 窗体模块 窗体模块是大多数 Visual Basic.
数 学 系 University of Science and Technology of China DEPARTMENT OF MATHEMATICS 第 3 章 曲线拟合的最小二乘法 给出一组离散点,确定一个函数逼近原函数,插值是这样的一种手段。 在实际中,数据不可避免的会有误差,插值函数会将这些误差也包括在内。
聚合物在生物高分子分离中的应用 王延梅 中国科学技术大学高分子科学与工程系 Tel
实验三: 用双线性变换法设计 IIR 数字滤波器 一、实验目的 1 熟悉用双线性变换法设计 IIR 数字滤波器的原理与方法。 2 掌握数字滤波器的计算机仿真方法。 3 通过观察对实际心电图信号的滤波作用, 获得数字滤波的感性知 识。
语义分析 主要内容:  语义分析概述 ( 必要性、功能、描述方法 )  符号表  类型表达式  声明和程序体的语义分析.
OS 进程调度模拟演示 制作人: 钱晶 高上上. OS 进程调度模拟-实验原理 静态优先级原理 在这种方式下,系统一旦把处理机分配给就绪队 列中的优先权最高的进程后,该进程便一直执行下去, 直至完成。或因为发生某事件使该进程放弃处理机,系 统方可再将处理机分配给另一优先级最高的进程。这些 事件包括有优先级更高的进程进入,或是因为某些原因.
1 第 7 章 专家控制系统 概述 专家系统的起源与发展 专家系统的一般结构 专家系统的知识表示和获取 专家系统的特点及分类.
信息利用与学术论文写作 Library of Jiangsu University, Zhenjiang Sha Zhenjiang
UML 对象设计与编程 主 讲 : 董兰芳 副教授 Dept. of Computer Science,USTC
数 学 系 University of Science and Technology of China DEPARTMENT OF MATHEMATICS 第 5 章 解线性方程组的直接法 实际中,存在大量的解线性方程组的问题。很多数值方 法到最后也会涉及到线性方程组的求解问题:如样条插值的 M 和.
从 Postscript 格式文献中提取 数学公式的方法. 概述 从 Postscript 格式文献中提取识别数学公式, 是数学公式识别领域的一个研究方向。主要针对 以 Word 和 Latex 为生成源的 Postscript 文档, 提出 基于内容的数学公式提取方法。首先重载 Postscript.
LOGO 文献管理软件 NoteExpress 简介 《文献管理与信息分析》课程系列之八罗昭锋 中国科学技术大学.
在发明中学习 线性代数 概念的引入 李尚志 中国科学技术大学. 随风潜入夜 : 知识的引入 之一、线性方程组的解法 加减消去法  方程的线性组合  原方程组的解是新方程的解 是否有 “ 增根 ” ?  互为线性组合 : 等价变形  初等变换  高斯消去法.
多媒体制作工具 Authorware 在流程线上添加图标 引入素材 编辑图标属性. 标题拦 菜单栏 图标栏 设计 窗口 演示 窗口 工具栏.
吉林大学远程教育课件 主讲人 : 杨凤杰学 时: 64 ( 第五十三讲 ) 离散数学. 定义 设 G= ( V , T , S , P ) 是一个语法结构,由 G 产生的语言 (或者说 G 的语言)是由初始状态 S 演绎出来的所有终止符的集合, 记为 L ( G ) ={w  T *
Relevance Theory Lecture 12. Relevance Theory 交际研究的对象是交际的概念、内容、 性质、功能、方法和交际行为、交际参 加者之间的关系等的认识和阐述。 20 世 纪 70 年代末以来, Sperber & Wilson 把认 知与交际结合起来,于 1986.
编译原理总结. 基本概念  编译器 、解释器  编译过程 、各过程的功能  编译器在程序执行过程中的作用  编译器的实现途径.
第五章 异步时序 逻辑电路 逻辑电路 5.1 异步时序逻辑电路的特点及模型 5.1 异步时序逻辑电路的特点及模型 1. 同步时序逻辑电路的特点 各触发器的时钟端全部连接在一起,并接在系 统时钟端; 只有当时钟脉冲到来时,电路的状态才能改变 ; 改变后的状态将一直保持到下一个时钟脉冲 的到来,此时无论外部输入.
周期信号的傅里叶变换. 典型非周期信号 ( 如指数信号, 矩形信号等 ) 都是满足绝对可 积(或绝对可和)条件的能量信号,其傅里叶变换都存在, 但绝对可积(或绝对可和)条件仅是充分条件, 而不是必 要条件。引入了广义函数的概念,在允许傅里叶变换采用 冲激函数的前提下, 使许多并不满足绝对可积条件的功率.
报告人:黄磊 缓冲溶液的积分缓冲容量. 缓冲指数的概念是 Vanslyke 在 1922 年提出 的,意义是当缓冲溶液改变一个单位时需 加入酸碱物质的量 即 这里的缓冲指数指的是微分缓冲容量,是 加酸碱物质的量随着 pH 值的变化率 1 ,微分缓冲容量.
 符号表  标识符的作用: 声明部分:定义了各种对象及对应的属性和 使用规则。 程序体:对所定义的对象进行各种操作。 $ididname IdnameAttributeIR  必要性 Token : 新表-符号表(种类、类型等信息):
习题课( 1 ) 进程管理及调度. 复习 进程概念、描述及状态 进程概念、描述及状态 进程的同步与互斥及应用 进程的同步与互斥及应用 管程机制 管程机制 进程通信 进程通信 进程调度算法 进程调度算法 进程死锁 进程死锁 线程 线程.
1 第 7 章 存储过程、触发器和程序包 在很多时候,都需要保存 PL/SQL 程序块,以便 随后可以重新使用。这也意味着,程序块需要一个名 称,这样需才可以调用或者引用它。命名的 PL/SQL 程序块可被独立编译并存储在数据库中,任何与数据 库相连接的应用程序都可以访问这些存储的 PL/SQL 程序块。
SMIE-121 Software Design II School of Mobile Information Engineering, Sun Yat-sen University Lecture.
Java 程序设计 Java Programming Fall, Chapter 7 Interfaces 2/44 Contents Single vs. Multiple Inheritance Abstract Classes Interface.
1 、如果 x + 5 > 4 ,那么两边都 可得 x >- 1 2 、在- 3y >- 4 的两边都乘以 7 可得 3 、在不等式 — x≤5 的两边都乘以- 1 可得 4 、将- 7x — 6 < 8 移项可得 。 5 、将 5 + a >- 2 a 移项可得 。 6 、将- 8x < 0.
超星数字图书馆 一、页面的使用 进入数字图书馆网页 下载超星阅读器 查找图书.
表单自定义 “ 表单自定义 ” 功能是用于制作表单的 工具,用数飞 OA 提供的表单自定义 功能能够快速制作出内容丰富、格 式规范、美观的表单。
项目 1 典型低压电器 的拆装、检修及调试 任务 2 交流接触器的拆装与检修 接触器是一种自动的电磁式自动开关,是 一种依靠电磁力作用使触点闭合或分离的自 动电器,用于接通和断开电动机或其它用电 设备电路。适用于远距离频繁地接通或断开 交直流主电路及大容量控制电路。交流接触 器具有控制容量大、操作方便、便于远距离.
一、热机 1 、热机:利用燃料燃烧而工作的机器 2 、共同特点: 燃料的化学能 内能 机械能 燃烧 做功.
第四章 不定积分. 二、 第二类换元积分法 一、 第一类换元积分法 4.2 换元积分法 第二类换元法 第一类换元法 基本思路 设 可导, 则有.
SMIE-121 Software Design II School of Mobile Information Engineering, Sun Yat-sen University Lecture.
演示场景. 类图 配置 HibernateApplicationContext.xml hibernate.cfg.xml 创建数据库 – ooad/ooad 关于 Library/Project 模板.
Date: File:SSP2_07C.1 SIMATIC S7 Siemens AG All rights reserved. Information and Training Center Knowledge for Automation 检测逻辑错误 ??
Object-Oriented Design and Programming (Java). 2 Topics Covered Today 2.1 Implementing Classes –2.1.3 Method equals and Method toString –1.2.6 Implementing.
2012 年昆明冶金高等专科学校 生源地贷款培训会. 一、生源地贷款鉴定证明 各地区县级教育部门生源地贷款办理时间一般 从 7 月 1 日开始。学校应尽快办理好学校鉴定证明, 给学生充裕的时间到当地办理.
逻辑设计基础 1 第 7 章 多级与(或)非门电路 逻辑设计基础 多级门电路.
参考文献管理软件. 常见参考文献管理软件 : 中文 : CNKI E-learning (目前免费) NoteExpress NoteFirst 英文: Refworks Endnote (网络版免费) Mendeley……
Chapter 8 Error Handing with Exceptions. 集美大学 计算机工程学院 Java 程序设计 What really matters is what happens after the error occurs. How is the error.
面向对象程序设计 Guangzhou University 1 An object-based program is more interesting when multiple objects are involved. In addition to acting as peers or agents,
八. 真核生物的转录 ㈠ 特点 ① 转录单元为单顺反子( single cistron ),每 个蛋白质基因都有自身的启动子,从而造成在功能 上相关而又独立的基因之间具有更复杂的调控系统。 ② RNA 聚合酶的高度分工,由 3 种不同的酶催化转 录不同的 RNA 。 ③ 需要基本转录因子与转录调控因子的参与,这.
一、 版 面 构 成 的 概 念 版 面 构 成 的 概 念 二、 版 面 构 成 的 发 展 趋 势 版 面 构 成 的 发 展 趋 势 三、 广 告 文 字 的 版 面 构 成 广 告 文 字 的 版 面 构 成 四、 广 告 版 面 的 视 觉 流 程 广 告 版 面 的 视 觉 流 程.
张勤 人大报刊复印资料 专题全文数据库 简 介简 介 《人大报刊资料全文数据库》是中国人民大 学书报资料中心与北京博利群电子信息有限 公司联合开发研制的大型数据库光盘。它涵 盖面广、信息量大、分类科学、筛选严谨、 结构合理,是国内最具权威的社会科学、人.
1 第三章 数列 数列的概念 考点 搜索 ●数列的概念 ●数列通项公式的求解方法 ●用函数的观点理解数列 高考 猜想 以递推数列、新情境下的 数列为载体, 重点考查数列的通 项及性质, 是近年来高考的热点, 也是考题难点之所在.
第十章 并行输入输出接口芯片 8255A (1) 有 24 可用于与外设相连接的 I/O 引脚,这 24 条引 脚分属于 A , B , C 三个端口 (2) 有三种主要工作方式:方式 0 ,方式 1 ,方式 2 一、 8255A 的引脚.
LOGO s 数控机床故障诊断与维修. 子项目 8 掌握 M 、 T 代码的工作原理并进行控制 冷却、转速、刀库等 。 任务 8.2 编制并运行斗笠式换刀子程序.
MULTI-RATE DIGITAL SIGNAL PROCESSING
Interface & Inner classes
Presentation transcript:

Chapter 6 Reusing Classes

off the shelf:现货供应、非定制 from scratch: from the very beginning

“has a” relationship Example: public class Car { Engine engine = new Engine(); Wheel[] wheel = new Wheel[4]; Door left = new Door(); Door right = new Door(); … } “has a” relationship

Types of Attributes Door Car Window window char color int price Engine engine Wheel wheel Door left Door right Window

*参见程序运行

*参见程序运行

Reference:

“is a” relationship Please: Person、 Employee、Customer、 Manager、 CSR 的继承树 “is a” relationship

Test Composition

Composition & Inheritance Composition- ”has a” Inheritance -”is a”

覆盖所得的方法的可访问级别,不能够比它所覆盖的方法访问级别更低。

private void doSomething() 方法将出现错误信息:---------- javac ---------- UseBoth.java:5: doSomething() in Child cannot override doSomething() in Parent; attempting to assign weaker access privileges; was public private void doSomething() {} ^ 1 error Normal Termination Output completed (0 sec consumed).

Polymorphism & Overriding

class OrderTaker{ private String name; private int basePay; private int ordersTaken; public void setName(String newValue){ name = newValue; } public void setBasePay(int newValue) { basePay = newValue; public void incrementOrdersTaken() { ordersTaken++; public String getName() { return name; public int getBasePay(){ return basePay; public int getOrdersTaken(){ return ordersTaken; public double calculatePay() { //Generic order takers get a weekly portion of their salary return getBasePay() / 52;

public double calculatePay(){ class CSR extends OrderTaker { public double calculatePay(){ //CSRs get their weekly pay plus 10 cents per order they take return getBasePay() / 52 + getOrdersTaken() * .1; } class OEC extends OrderTaker { //OECs get their weekly pay plus 1 cent per order they take return getBasePay() / 52 + getOrdersTaken() * .01;

private int peopleHarassed; public void incrementPeopleHarassed(){ class Telemarketer extends OrderTaker{ private int peopleHarassed; public void incrementPeopleHarassed(){ peopleHarassed++; } public int getpeopleHarassed() { return peopleHarassed; public double calculatePay(){ /*Telemarketers get 10 cents for every order they take and 1cent per person they harass (call)*/ return getBasePay() / 52 + peopleHarassed * .01 + getOrdersTaken() * .1;

public class TestPolymorphism{ //class Clerks public static void main(String args[]) { OrderTaker first, second, third; first = new OEC(); second = new CSR(); third = new Telemarketer(); first.setBasePay(52000); second.setBasePay(52000); third.setBasePay(52000); first.incrementOrdersTaken(); second.incrementOrdersTaken(); third.incrementOrdersTaken(); ((Telemarketer) third).incrementPeopleHarassed(); System.out.println("First made " + first.calculatePay()); System.out.println("Second made " + second.calculatePay()); System.out.println("Third made " + third.calculatePay()); }

Result: ---------- java ---------- First made 1000.02 Second made 1000.1 Third made 1000.11 Normal Termination Output completed (0 sec consumed).

Casts up implicitly :向上转型隐式进行的,会引起方法丢失。子类自动具有父类类型,始终允许向概括类、抽象类转型。 Downward casts :向下转型必须是子类,并由编译器检查。 RTTI(运行期类型识别):运行期类型检查:对象的类型在运行时检查,若类型不匹配,将报错误信息。

//: c07:RTTI. java :From 'Thinking in Java, 3rd ed //: c07:RTTI.java :From 'Thinking in Java, 3rd ed.' (c) Bruce Eckel 2002 // Downcasting & Run-Time Type Identification (RTTI) : {ThrowsException} class Useful { public void f() {} public void g() {} } class MoreUseful extends Useful { public void u() {} public void v() {} public void w() {} public class RTTI { public static void main(String[] args) { Useful[ ] x = { new Useful(), new MoreUseful() }; x[0].f(); x[1].g(); // x[1].u(); Compile time: method not found in Useful: ((MoreUseful)x[1]).u(); // Downcast/RTTI ((MoreUseful)x[0]).u(); // Exception thrown

Overriding & Overloading Overriding Methods--- same method Overloading Methods---many methods

构造器不存在覆盖的问题,因父子类不同。

Constructor and Initialization Example