![子类构造器与方法重写_第1页](http://file4.renrendoc.com/view/4250bf2b4a5bde5f4a9a44a96f4b0791/4250bf2b4a5bde5f4a9a44a96f4b07911.gif)
![子类构造器与方法重写_第2页](http://file4.renrendoc.com/view/4250bf2b4a5bde5f4a9a44a96f4b0791/4250bf2b4a5bde5f4a9a44a96f4b07912.gif)
![子类构造器与方法重写_第3页](http://file4.renrendoc.com/view/4250bf2b4a5bde5f4a9a44a96f4b0791/4250bf2b4a5bde5f4a9a44a96f4b07913.gif)
![子类构造器与方法重写_第4页](http://file4.renrendoc.com/view/4250bf2b4a5bde5f4a9a44a96f4b0791/4250bf2b4a5bde5f4a9a44a96f4b07914.gif)
![子类构造器与方法重写_第5页](http://file4.renrendoc.com/view/4250bf2b4a5bde5f4a9a44a96f4b0791/4250bf2b4a5bde5f4a9a44a96f4b07915.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象程序设计(Java)
----子类构造器、方法重写深圳职业技术学院主讲教师:袁梅冷2008-04-21电信学院---软件工程系本单元教学内容使用继承改善系统类的结构类成员的继承规则子类构造器子类对父类方法的重写汽车管理系统系统是一个用于管理小轿车、客车等各类汽车资源的系统。功能主要包括:维护、存储各类车的基本信息;提供汽车信息列表输出等功能。分析:针对系统要求,应设计哪些核心类?汽车管理系统核心类1.用于描述各种类型车信息的车类,如Car类、Bus类;2.用于保存所有汽车基本信息的数据类。分析:1。Car类与Bus类各有什么成员属性和方法?比较Car类与Bus类,发现什么异同?如果还需要其它车类,怎么做?VehicleData类用于保存维护所有汽车基本信息;分析VehicleData类问题:1.如何保存各类车信息?2.分析相关的add方法和list方法,比较异同。ArrayList类的使用ArrayList类封装了一个Object类型的数组,我们可以使用它来维护一个Object的可变长数组。ArrayList对象的创建publicArrayList():默认的构造器,将会以默认大小(16)来初始化内部的数组。publicArrayList(int
initialCapacity):用指定的大小来初始化内部的数组。publicArrayList(Collectionc):用一个已有集合对象来构造数组,并将该集合的元素添加到ArrayList的数组中。ArrayList类的使用ArrayList类的部分常用方法add(Objecto):在对象列表结构的最后添加对象元素。add(intindex,Objectelement):在对象列表指定位置插入新的对象元素。remove(Objecto):从对象列表中移走对象。clear():清空列表中的所有对象元素。iterator():返回用于遍历对象集合的指针。Java的循环控制结构Java的循环语句共有三种,它们是:while循环语句for循环语句do…while循环语句。循环结构由四个部分组成。初始化部分(initialization):一条或多条语句,用来做一些初始化的工作。循环条件部分(loop-condition):一个boolean型的表达式,根据它的值来判断是否继续下一次循环。循环体部分(body):将被反复执行的代码,可以是一条语句,也可以是一个语句块(复合语句)。迭代部分(iteration):在一次循环结束后,下一次循环开始前执行的语句,通常用于修改循环条件。Java的循环控制结构while和for循环语句对应当型结构,do…while语句对应直到型结构。当型循环结构直到型循环结构While循环while的语法格式如下: [initialization] while(loop-condition){ body;
[iteration;]
}试一试:请分析下面程序段的功能,绘制其流程图,并加以解释。intcount=1;//定义并初始化循环变量Iintsum=0;//定义并初始化求和结果变量sumwhile(count<=100){//循环求和sum+=count;//循环体count++;}System.out.println(“1+2+...+100=”+sum);//输出结果for循环for循环语句是当型结构,在几种循环语句的使用中最为灵活,其语法格式如下:for([initialization];[loop-condition];[iteration]){
body;
}试一试:编写使用for循环语句实现计算1到100的和的程序段。do…while循环语句do-while循环语句是直到型结构,它的语法格式如下:[initialization]
do{
body;
[iteration;]
}while(loop-condition);试一试:编写使用do-while循环语句实现计算1到100的和的程序段。改善系统类结构如何有效减少Car类和Bus类代码的重复?观察下图基本思路:将Car类与Bus类的共性抽象出来,上移到Vehicle类中。以Vehicle类为基础,构建Car类和Bus类。相关概念类的继承描述的是类与类之间的“isa”关系,即子类是比父类更为特殊的类,是父类的一种特例。继承机制的优点在于为我们提供了一种类级的代码重用机制,使我们可以在现有类的基础上,通过重用、修改或添加等方法创建一个新类。父类(或基类、超类)子类(或派生类)继承的Java实现编写例3-3程序在Java中使用关键字extends实现继承,其基本语法格式为:classSubClassName
extends
SupClassName{}需要讨论二个问题:1、子类中有什么?类成员的继承规则是怎样的?2、在继承结构中,构造器是如何处理的?如何写子类构造器方法。类成员的继承规则分析讨论private成员的继承性;分析讨论public成员的继承性;问题:如果父类的public方法是用来操作父类的私有变量呢?分析讨论无访问控制符修饰的成员的继承性;protected访问修饰符的使用protected是专为继承而设计的访问控制修饰符成员属性与成员方法的继承规则父类
publicdefaultprotectedprivate同一包中子类publicdefaultprotected不被继承Java成员继承规则试一试:编写Bus类的测试程序,参见P79-P80分析:Bus类中有哪些成员变量与成员方法?如果调用从父类继承下来的公有方法?举例说明?子类构造器重新思考:构造器的形式要求?构造器的作用?观察分析:Bus类与Car类构造器方法理解子类构造器在内存机制中,子类对象的属性包含从父类继承下来的属性和自己新增的属性,因此,构建对象时,也要先构建父类的数据部分,再考虑子类增加的部分。子类构造器子类构造器的一般形式子类类名(构造器参数列表){ super(与父类构造器方法参数相对的实参);//①调用父类构造器
//②对子类成员的初始化}实战演练1.编写一个矩形类Rect,该类包含:两个私有属性:矩形的长length和宽width。一个构造器方法:带2个参数的构造器方法,用于对length和width属性进行初始化。两个公有成员方法:分别用于计算并返回矩形的面积和周长。实战演练2.编写一个具有确定位置的矩形类PlainRect,该类继承于Rect类,其确定位置用矩形的左上角坐标来标识,为该类添加:两个属性:矩形左上角坐标startX和startY。两个构造器方法:(1)带4个参数的构造器方法,用于对startX、startY、width和height属性初始化;(2)不带参数的构造器方法,将矩形初始化为左上角坐标、长和宽都为0的矩形;一个方法:方法isInside(double
x,doubley)。用于判断某个点是否在矩形内部,如在矩形内,返回true,否则,返回false。实战演练3.编写上题PlainRect类的测试程序(1)创建一个左上角坐标为(10,10),长为20,宽为10的矩形对象;(2)计算并打印输出矩形的面积和周长;(3)判断点(25.5,13)是否在矩形内,并打印输出相关信息。方法覆盖(重写)当从父类继承下来的方法不能完全满足子类需要时,我们可以重写该方法。如:Bus中从Vehicle类中继承下来的方法printInfo()不能输出车的座位数。修改Bus如下: classBusextendsVehicle{privateint
numOfSeat;publicBus(String
type,String
brand,double
price,int
numOfSeat){
super(type,brand,price);
this.numOfSeat=numOfSeat;}
publicvoidprintInfo(){//重写父类中的printInfo()方法
super.printInfo();//调用父类中的该方法
System.out.println("座位数:"+numOfSeat);
}
}方法覆盖(重写)重新运行Bus类的测试程序P79-P80方法覆盖与方法重载的区别。方法重载要求:方法名相同,参数数目或参数类型不同;方法覆盖要求:子类的方法定义应与父类保持一致。即应与父类有完全相同的方法名、返回值类型和参数列表,否则就不是方法的覆盖,而是在子类中定义了自己的与父类无关的成员方法,此外,方法的覆盖还应遵循以下规则:覆盖方法的访问控制应该与它所覆盖的方法的访问控制相同或更宽松;覆盖方法不能比它所覆盖的方法抛出更多的异常。试一试对于以下的类BaseClass和子类SubclassclassBaseClass{privatefloatx=1.0f;protectedfloatgetVar()(returnx;)}classSubclassextendsBaseClass{privatefloatx=2.0f;//方法插入处}以下哪些方法是方法getVar()的重写方法:()A.floatgetVar(){returnx;}B.publicfloatgetVar(){returnx;}C.floatdoublegetVar(){returnx;}D.protectedfloatgetVar(){returnx;}E.publicfloatgetVar(floatf){returnf;}试一试14.对于以下给定的类:publicclassMethodOver{ publicvoidsetVar(inta,intb,floatc){}}下面哪些方法是方法setVar(inta,intb,floatc)的重载方法?()A.privatevoidsetVar(inta,floatc,intb){}B.protectedvoidsetVar(inta,intb,floatc){}C.public
int
setVar(inta,floatc,intb)(returna;)D.public
int
setVar(inta,intb,floatc)(returna;)E.protectedfloatsetVar(inta,intb,floatc)(returnc;)
变量的隐藏classSuperClass{ privateintvalue=10; publicvoidprintValue(){
System.out.println("value="+value);}}classDeriveClassextendsSuperClass{ privateintvalue=20;}实战演练1. 编写Employee类,该类包含:四个受保护属性:雇员的姓名name、工号number、住址address和薪水salary。一个构造器方法:用于初始化name、number和salary属性。两个公有成员方法:分别实现职员基本信息的输出和按比例涨工资的功能。实战演练2.编写Manager类,该类继承于Employee类(1)为其添加:两个属性:办公室officeID和年终分红bonus;一个构造器方法:带有4个参数的构造器方法,用于对除bonus属性外的所有其它属性进行初始化;方法:officeID属性和bonus属性的相关set和get方法;(2)重写Employee类中的方法raiseSalary(doubleproportion),经理涨工资的计算方法为在雇员工资涨幅的基础上增加10%的比例。实战演练3.编写TemporaryEmployee(临时工)类,该类继承于Employee类(1)为其添加:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 现代物流信息系统建设中的标准化问题
- 挂绳高空作业施工方案
- 拆除临时用电施工方案
- 生态文明教育在校园的实践与推广
- 现代企业综合管理能力提升及领导力培训方案研究报告
- 国庆节营销活动方案模板
- 2023三年级语文上册 第一单元 习作:猜猜他是谁说课稿 新人教版
- Unit 2 AnimaIs Lesson 1 Enjoy the story(说课稿)-2024-2025学年北师大版(三起)英语五年级上册
- 2024秋八年级物理上册 第1章 机械运动 第2节 运动的描述说课稿2(新版)新人教版
- 2025仿石漆施工合同
- 数学-河南省三门峡市2024-2025学年高二上学期1月期末调研考试试题和答案
- 二零二五版电力设施维修保养合同协议3篇
- 运动技能学习与控制课件第一章运动技能学习与控制概述
- 固体废弃物检查记录
- 工程设计费取费标准
- 2023年辽宁铁道职业技术学院高职单招(数学)试题库含答案解析
- CAPP教学讲解课件
- 自然环境的服务功能课件 高中地理人教版(2019)选择性必修3
- 小耳畸形课件
- 精美唯美淡雅个人求职简历模板 (7)
- 环保铁1215物质安全资料表MSDS
评论
0/150
提交评论