面向程序基础设计 9_第1页
面向程序基础设计 9_第2页
面向程序基础设计 9_第3页
面向程序基础设计 9_第4页
面向程序基础设计 9_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

面向对象程序设计与实践第五章Java抽象类和接口面向对象程序设计与实践课程组教学目标教学方式重点知识学习目标1.熟悉抽象类的基本含义以及Java中的语法规则2.熟悉接口基本含义以及实现规则3.掌握抽象类定义方法,并能根据需要进行抽象类设计4.掌握接口定义以及实现方法1.抽象类的语法规则2.接口类的定义及实现规则3.使用接口实现多态本章以理论讲解、案例演示、代码分析为主。学习本章内容之前,建议同学们先了解“案例描述”,带着设计要求学习案例中涉及的知识点,然后动手进行编码实现,需要注意的是:1.案例5-1的重点在于抽象类的抽象方法的设计2.案例5-2的重点在于接口的定义及设计目录CONTENTS

015-1简易公司人事管理025-2家电产品类设计01简易公司人事管理案例描述案例分析关联知识案例实现案例小结案例拓展5-1案例描述现有一软件公司,公司中有开发人员若干、项目经理若干、地区经理若干。已知开发人员有姓名、工号和薪水的属性,并为公司进行工作。项目经理除了有姓名、工号和薪水还有奖金,并为公司进行工作。地区经理除了有姓名、工号和薪水还有奖金和公司的股票分红,也为公司进行工作。现要求根据给出的需求进行公司人员管理。抽象方法5-1关联知识抽象方法只有声明没有方法体,不需要具体实现abstract返回值数据类型抽象方法名();抽象方法必须用abstract关键字进行修饰,且不能同时使用final或static进行修饰。如果一个类含有抽象方法,则这个类也必须定义为抽象类,抽象类必须在类前用abstract关键字修饰。

例如,将Pet类中的两个方法定义为抽象方法

publicabstractvoidenjoy(); //将enjoy定义为抽象方法publicabstractvoidmove(); //将move定义为抽象方法抽象方法目的就是为了实现一个接口多种方法的原理,即所有的子类对外都呈现一个相同名字的方法,抽象方法必须被重写,且构造方法、类方法不能声明为抽象方法。抽象类5-1关联知识抽象类在类层次结构中代表一般性概念,规定必须实现方法的统一接口,子类将基于此概念来定义方法,定义方法如下:abstractclass类名{

数据成员;//定义抽象方法,没有方法体实现abstract返回值数据类型抽象方法名();

访问权限返回值数据类型成员方法名(形式参数列表){…方法实现}}抽象类的特点5-1关联知识(1)抽象类中可以有抽象方法,也可以有非抽象方法(2)抽象类必须被继承(3)抽象类本身不能实例化,即不能使用new运算创建对象。只有它的非抽象子类可以创建对象,而抽象类定义的对象可以用于指向子类对象。例如,Petp=newPet("小白","白色",2,12,2000);//错误,抽象类不能实例化Petp=newCat("咪咪","灰色",1,8,3000,"波斯猫");//正确,可以指向子类对象(4)由抽象类派生的子类必须实现所有父类的抽象方法,否则,该子类仍然是抽象类。抽象类5-1关联知识PupilStup=newPupilStu();p.pay();MiddleStum=newMiddleStu();m.pay();HighStuh=newHighStu();h.pay();ColgStuc=newColgStu();c.pay();5-1案例分析交流与讨论结合案例分析,思考一下几个问题:开发人员——静态属性为姓名、工号、薪水,动态行为为工作项目经理——静态属性为姓名、工号、薪水,奖金;行为为工作地区经理——静态属性为姓名、工号、薪水,奖金、股票分红;行为为工作父类——共性内容抽象方法——定义工作行为5-1案例实现5-1案例实现开发人员项目经理地区经理5-1案例小结抽象类的定义fen1、抽象类的定义2、子类抽象方法实现5-1案例拓展通过学习本案例,大家应该对如何定义抽象类,如何建立抽象类的实现子类有了一定认识,可以在本案例的基础上思考如果要另外增加一个工种系统分析师,那么如何在已有的案例来拓展实现。02案例描述案例分析关联知识案例实现案例小结案例拓展家电产品设计5-2案例描述现有手机、电视、洗衣机等数码家电产品若干,有些家电产品实现了USB接口和屏幕播放接口,有些家电产品则没有实现,请根据需求进行数据模型设计。5-2关联知识接口泛指供别人调用的方法或者函数接口定义形式如下:在接口中所有的方法都只有声明没有方法体,是抽象方法和常量值的定义的集合[public]interface接口名{//定义常量(常量名Java的命名规则要求尽量全部字母大写)publicstaticfinal数据类型常量名=值; //定义抽象方法publicabstract返回值类型

方法名(数据类型参数名,…);}publicinterfaceRunner{ intid=1; //等价于publicfinalstaticintid=1;publicvoidstart(); //等价于publicabstractvoidstart();publicvoidrun();publicvoidstop();}[public]interfaceShapeextendsActionListener,MouseListener,……{}接口还能继承接口(可以继承多个):接口示例:5-2关联知识接口实现Java中类要实现接口用关键字implements,接口实现语法如下:[public]class类名extends父类implements接口1,接口2…{…}允许一个类实现多个特定的接口。如果一个非抽象类要实现某个接口,就必须实现该接口中的所有方法。定义了实现某个接口的抽象类,可以不实现该接口中的抽象方法。如果定义的类同时继承类和实现接口,那么extends要放在implements的前面。5-2关联知识接口实现实例5-2关联知识课堂练习1、定义一个“点”(Point)类用来表示三维空间中的点,要求如下: 1)可以生成具有特定坐标的点对象 2)提供可以设置三个坐标的方法 3)提供可以计算该“点”到原点距离平方的方法 4)编写程序验证上述三条2、在已有的Circle类中添加一个方法,该方法计算一个点(上述1中的Point对象)是否在圆(Circle对象)内,并编写程序验证5-2关联知识接口继承实例5-2关联知识接口与抽象类的区别5-2案例分析交流与讨论结合案例分析,思考有以下几个问题:(1)家电产品若干,可以从中抽取出家电产品的共同特性,定义电子产品类。(2)分析家电可能实现的接口USB,可以进行充电和数据传送功能。(3)分析家电可能实现的接口Video,可以实现视频的播放、暂停、快进、慢放的功能。(4)定义手机Phone类,隶属于数码家电,并实现了USB和Video接口。(5)定义TV类,隶属于家电,并实现了Video接口。(6)定义洗衣机WashingMachine类,隶属于家电,未实现任何接口。5-2案例实现定义两个接口packageeproductpg;publicinterfaceUSB{voidcharging();voidtransferdata();}packageeproductpg;publicinterfaceVideo{voidplay();voidfast();voidpause();voidslow();}5-2案例实现定义各种实现了接口的数码家电产品类//数码电子产品父类packageeproductpg;abstractpublicclassElecticProduct{Stringname;publicStringgetName(){returnname;}publicvoidsetName(Stringname){=name;}

abstractvoidshowInfo();}手机类

Phone:是ElecticProduct子类,实现了USB、Video接口洗衣机类WashingMachine:是ElecticProduct子类电视机类TV:是ElecticProduct子类,实现了Video接口importeproductpg.*;//纳入电子产品包的所有类publicclassDemo5_6{publicstaticvoidmain(String[]args){Phonep=newPhone();p.setName("华为");p.showInfo();p.play();p.charging();TVt=newTV();t.setName("海信");t.showInfo();t.fast();WashingMachinew=newWashingMachine();w.setName("海尔");w.showIn

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论