欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    Java程序设计任务驱动式教程 任务十 万能之手接口的使用.pptx

    • 资源ID:72988990       资源大小:178.69KB        全文页数:32页
    • 资源格式: PPTX        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Java程序设计任务驱动式教程 任务十 万能之手接口的使用.pptx

    132目录任务一 搭建环境(构建Java集成开发环境)任务二 Java欢迎你(开发简单Java应用程序任务三 小试牛刀(学习Java语言基础)任务四 挑战选择(使用分支控制流程)任务五 游戏人生(使用循环控制流程)任务六 回归自然(创建、使用类和对象)任务七 3G时代的消息传递(定义和使用类方法)任务八 保护你的隐私(封装的使用)任务九 子承父业(继承和多态的使用)任务十 上帝万能之手(接口的使用)第1页/共32页232任务十一 用数组存储信息(使用数组)任务十二 使用字符串进行交流(使用字符串)任务十三 防患于未然(捕获并处理异常)任务十四 主动出击(抛出异常)任务十五 认识Java Applet(Applet入门)任务十六 丰富多彩的Applet(在Applet中播放声音和显示图像)任务十七 进入Windows世界(设计图形用户界面)任务十八 布局规划(使用布局管理器)任务十九 事件委托处理(如何处理事件)任务二十 选择之道(使用选择控件和选择事件)目录第2页/共32页332任务二十一 简明清晰的菜单(使用菜单和其他常用事件)任务二十二 访问数据(使用JDBC连接数据库)任务二十三 访问数据升级(数据库编程)任务二十四 文件管理(目录与文件管理)任务二十五 顺序进出之道(文件的顺序访问)任务二十六 随机进出之道(文件的随机访问)任务二十七 JAVA的分身术(创建和启动线程)任务二十八 线程的生命周期与优先级(线程的状态与调度)任务二十九 基于连接的通信(Java中的套接字Socket)任务三十 基于无连接的通信(Java中的数据报编程)目录第3页/共32页432任务十 上帝万能之手(接口的使用)21知识目标知识目标能力目标能力目标什么是接口;接口关键字;接口与多态的关系。为什么使用面向接口编程,面向接口编程的实现;什么是常量;常量的定义规则。掌握Java接口;理解Java接口与多态的关系;掌握面向接口编程的思想;掌握接口中常量的使用。第4页/共32页532内容提要4跟我做:跟我做:使用使用USB接口接口 1235实现方案实现方案 代码分析代码分析 必备知识必备知识 动手做一做动手做一做 第5页/共32页63210.1 跟我做:使用USB接口 n任务情景电脑主板上的USB接口有严格的规范,U盘、移动硬盘的内部结构不相同,每种盘的容量也不同,但U盘、移动硬盘都遵守了USB接口的规范,所以,在使用USB接口时,可以将U盘、移动硬盘插入任意一个USB接口,而不用担心哪个USB接口是专门插哪个盘。请编写程序,模拟使用USB接口的过程。n运行结果第1章目录第6页/共32页732n解决步骤采用接口技术后,把USB接口的特殊类称为接口,U盘、移动硬盘类实现具体的功能。1.打开Eclipse,在study项目中创建包com.task10,再确定类名USB(接口名),得到接口的框架。package com.task10;public interface USBInterface/这是Java接口,相当于USB接口的规范2.然后,进行抽象方法的声明:public void start();/抽象方法,开始使用public void stop();/停止使用3.接着,定义继承类(实现类)MovingDisk:public class MovingDisk implements USBInterface/移动硬盘遵守了USB接口的规范 /详细实现代码参见10.3第1章目录10.2 实现方案 第7页/共32页8324.再定义继承类(实现类)UDisk:UDisk类代码与MovingDisk类相似。5.定义UseUSB类使用USB接口,运行程序。对UseUSB类能否正确使用MovingDisk类和UDisk类,能否将盘插入到USB接口中进行测试。代码如下:USBInterface usb1=new MovingDisk();/将移动硬盘插入USB接口1USBInterface usb2=new UDisk();/将U盘插入USB接口2usb1.start();/开启移动硬盘usb2.start();/开启U盘usb1.stop();/关闭移动硬盘usb2.stop();/关闭U盘第1章目录10.2 实现方案 第8页/共32页932n程序代码package com.task10;/*USBInterface.java *接口*/public interface USBInterface/这是Java接口,相当于主板上的USB接口的规范public void start();public void stop();package com.task10;/*MovingDisk.java *实现类*/public class MovingDisk implements USBInterface/移动硬盘遵守了USB接口的规范public void start()/实现接口的抽象方法,移动硬盘有自己的功能System.out.println(移动硬盘插入,开始使用);public void stop()/实现接口的抽象方法,移动硬盘有自己的功能System.out.println(移动硬盘退出工作);第1章目录10.3 代码分析 第9页/共32页1032package com.task10;/*UDisk.java *实现类*/public class UDisk implements USBInterface/U盘遵守了USB接口的规范public void start()System.out.println(U盘插入,开始使用);public void stop()System.out.println(U盘退出工作);第1章目录10.3 代码分析 第10页/共32页1132第1章目录10.3 代码分析 package com.task10;/*UseUSB.java *测试类,完成移动硬盘、U盘插入测试*/public class UseUSB/*param args*/public static void main(String args)USBInterface usb1=new MovingDisk();/将移动硬盘插入USB接口1USBInterface usb2=new UDisk();/将U盘插入USB接口2usb1.start();/开启移动硬盘usb2.start();/开启U盘usb1.stop();/关闭移动硬盘usb2.stop();/关闭U盘第11页/共32页123210.3 代码分析 n应用扩展增加主板类,再修改UseUSB类,将USB接口安装在主板上,然后在UseUSB类中将移动硬盘、U盘插入到主板的USB接口中。package com.task10;/*MainBoard.java *主板类,安装USB接口*/class MainBoardpublic void useUSB(USBInterface usb)/通过这个方法,插入符合USB接口规范的盘usb.start();usb.stop();package com.task10;第1章目录第12页/共32页133210.3 代码分析/*UseUSB.java *测试类,完成U盘、移动硬盘插入测试*/public class UseUSB public static void main(String args)MainBoard mainBoard=new MainBoard();USBInterface usb1=new MovingDisk();/在USB接口1上插入移动硬盘mainBoard.useUSB(usb1);USBInterface usb2=new UDisk();/在USB接口2上插入U盘mainBoard.useUSB(usb2);第1章目录第13页/共32页143210.4 必备知识 10.4.1 Java接口1.接口的概念接口是由常量和抽象方法组成的特殊类,是对抽象类的进一步抽象。声明接口时使用interface关键字。接口中的抽象方法在接口的实现类中被实现,这些实现方法可以具有完全不同的行为。2.为什么需要接口类与类之间通过继承,子类共享父类的属性和方法,但Java中只能实现单继承,无法实现多继承,借助于接口可以达到这一目的。继承会形成树形结构的严格的层次关系,层数越多,灵活性越小,系统维护越复杂。采用接口,问题会迎刃而解。正确使用面向接口编程的思想,还会提高系统的可扩展性及可维护性。3.接口的实现与使用接口的实现与使用分三个步骤。先声明接口,再定义接口的实现类,最后使用接口。第1章目录第14页/共32页1532声明接口接口的声明格式:public interface 接口名常量声明;抽象方法声明;例如,定义USB接口接口,有两个抽象方法。public interface USBInterface/主板上的USB接口接口public void start();/抽象方法public void stop();接口中的方法声明只能写成抽象方法的形式,不能带方法体。注意:在接口中,定义的常量修饰符默认为public static final,定义的方法修饰符默认为public abstract,所以可以省去常量、方法声明的修饰符。实现接口有了接口声明,接下来就要实现接口,也就是要进行实现类的定义。实现类的定义要使用implements关键字。例如,接口USBInterface的实现类MovingDisk的定义如下:第1章目录10.4 必备知识 第15页/共32页1632public class MovingDisk implements USBInterface/实现了USB接口的接口public void start()/实现接口中的方法System.out.println(移动硬盘插入,开始使用);public void stop()/实现接口中的方法System.out.println(移动硬盘退出工作);牢记interface 和implements两个关键字,基本上就把握住了接口的定义和实现。但是,还要注意,在实现类中,接口所有方法的方法体必须补写完整,另外,方法的修饰符必须使用public。注意:一个类可以实现多个接口,但只能继承一个父类。接口的使用在程序中,常通过实现类来使用接口。例如,接口USBInterface的实现类MovingDisk的定义完成后,可以用以下方式使用。USB usb1=new MovingDisk();/接口的使用usb1.start();/调用接口的方法10.4 必备知识 第16页/共32页1732改错:关于接口的声明有哪些错误?public interface Staff public String getInfo();public void speak()getInfo();private void write();void work();提示:有2个错误。10.4 必备知识 第17页/共32页18324.接口与抽象类通过前面的学习,从概念上能看出接口与抽象类的区别。一是使用的关键字不同。接口用的是interface,抽象类用的是abstract。二是方法的存在形式不同。接口中的方法是抽象方法,不能包含带方法体的普通方法,抽象类中的方法既可以有抽象方法,也可以有普通方法。三是属性上的处理不同。接口中的属性是常量,而抽象方法中的属性没有限制。此外,使用上也有所不同。当各个子类都存在一个共同的方法特征,但有各自不同的实现时,一般使用接口。接口与抽象类不是水火不相容的关系,相反,两者是可以结合使用的,例如,抽象类可以实现接口。在实现时,接口中的抽象方法既可以全部实现,也可以部分实现,甚至一个都不实现。没有实现的接口方法,抽象类也不需要重新显式声明为抽象方法。这种情况下,抽象类的子类必须实现抽象类中的抽象方法,以及来自接口而抽象类没有实现的方法。例如,InterfaceSample为接口,抽象类AbstractClass是接口的实现类,SonAbstractClass类为抽象类AbstractClass的子类。InterfaceSampleTest是测试类。代码如下:10.4 必备知识 第18页/共32页1932package com.task10;/*InterfaceSample.java *接口*/public interface InterfaceSample public void action1();/抽象方法public void action2();package com.task10;/*AbstractClass.java *抽象类,作为接口的实现类*/public abstract class AbstractClass implements InterfaceSample Overridepublic void action1()/实现接口中的方法System.out.println(在抽象类中实现接口的action1()方法);abstract void action3();/新增的抽象方法,扩展类的功能10.4 必备知识 第19页/共32页2032package com.task10;/*SonAbstractClass.java *抽象类的子类*/public class SonAbstractClass extends AbstractClass Overridevoid action3()/实现抽象类中的抽象方法System.out.println(在子类中实现抽象类-父类的action3()方法);Overridepublic void action2()/实现接口中的方法,在抽象类中没有得到实现System.out.println(在子类中实现接口的action2()方法);package com.task10;/*InterfaceSampleTest.java *测试类*/public class InterfaceSampleTest/*param args*/public static void main(String args)SonAbstractClass sonAbstractClass=new SonAbstractClass();sonAbstractClass.action1();/调用在抽象类中实现的接口的action1()方法sonAbstractClass.action2();/调用在子类中实现的接口的action2()方法sonAbstractClass.action3();/调用在子类中实现的抽象类-父类的action3()方法/新增的抽象方法,扩展类的功能10.4 必备知识 第20页/共32页2132抽象类AbstractClass实现了InterfaceSample接口,同时,实现了接口中的action1()方法,但没有实现接口中的action2()方法,而是新增了抽象方法action3(),扩展了类的功能。抽象类AbstractClass的子类SonAbstractClass,实现了抽象类中的抽象方法action3(),以及接口的抽象方法action2()。10.4 必备知识 第21页/共32页223210.4.2 接口与多态的关系动态多态是在父类与子类之间的方法重写。接口是为了在运行时支持动态调用方法的一种机制,它使方法的声明和实现分割开来。接口作为类型可以声明一个对象的引用变量,实现接口的类实例化后,其对象的引用可以保存在这个变量中,再通过引用变量访问方法。至于调用哪个方法是动态的,根据实际创建的对象调用相应的实现方法。通过接口找到方法,表现出多态性。10.4 必备知识 第22页/共32页233210.4.3 面向接口编程的思想开发系统时,主体构架使用接口,接口构成系统的骨架,这样就可以通过更换接口的实现类来更换系统的实现。这就是面向接口编程的思想。采用面向接口编程的思想编程,分为三个步骤。以下结合例子加以学习。有一摄影中心,既有传统照相机(AnalogueCamera),也有数码照相机(DigitalCamera),中心(PhotoCentre)和摄影师(Cameraman)在拍照时,使用不同的照相机照出的照片也就不同,最后经摄影中心将照片印出来(printPhoto)。采用面向接口编程的思想编程。1.抽象出Java接口传统照相机、数码照相机都是用作拍照,但两者对拍照takephoto()方法有不同的实现。因此,抽象出Java接口Camera,在其中定义方法takephoto()。同样,无论是摄影师还是摄影中心派人拍照,都要进行照片的景点抓取,但各自对aimAtPhoto()方法实现不同。因此,抽象出Java接口Photo,在其中定义方法aimAtPhoto()。10.4 必备知识 第23页/共32页2432具体实现:package com.task10;/*Camera.java *接口*/public interface Camera public void takephoto(String content);/拍照片package com.task10;/*Photo.java *接口*/public interface Photo public String aimAtPhoto();/抓取景点10.4 必备知识 第24页/共32页25322.实现Java接口抽象出Java接口Camera,并在其中定义了takephoto()方法后,传统照相机、数码照相机对takephoto()方法有各自不同的实现。因此,传统照相机、数码照相机都实现Camera接口,各自实现takephoto()方法。同样,摄影师Cameraman实现了接口Photo。具体实现:package com.task10;/*AnalogueCamera.java *实现类*/public class AnalogueCamera implements Camera public void takephoto(String content)/拍照 System.out.println(传统照像:);System.out.println(content);package com.task10;/*DigitalCamera.java *实现类*/10.4 必备知识 第25页/共32页2632public class DigitalCamera implements Camera public void takephoto(String content)/拍照 System.out.println(数码照像:);System.out.println(content);package com.task10;/*Cameraman.java *实现类*/public class Cameraman implements Photo public String aimAtPhoto()/抓取到景点return 本人是摄影师,抓取到景点,拍照了;10.4 必备知识 第26页/共32页27323.使用Java接口主体构架使用接口,让接口构成系统的骨架,通过更换实现接口的类就可以更换系统的实现。具体实现:package com.task10;/*PhotoCentre.java *实现类*/public class PhotoCentre implements Photo private Camera camera;/照相机 public void setCamera(Camera camera)this.camera=camera;public String aimAtPhoto()/抓取到景点 return 这里是摄影中心,抓取到景点,拍照了;public void printPhoto(Photo scene)/印照片 camera.takephoto(scene.aimAtPhoto();System.out.println(照片印好了);10.4 必备知识 第27页/共32页2832package com.task10;/*CameraTest.java *测试类*/public class CameraTest public static void main(String args)PhotoCentre photoCentre=new PhotoCentre();/创建摄影中心 photoCentre.setCamera(new AnalogueCamera();/配备传统照相机 photoCentre.printPhoto(photoCentre);/将中心派人拍的照片印出来 photoCentre.setCamera(new DigitalCamera();/配备数码照相机 photoCentre.printPhoto(photoCentre);photoCentre.printPhoto(new Cameraman();/将摄影师拍的照片印出来 10.4 必备知识 第28页/共32页293210.4.4 接口中常量的使用常量是一种标识符,它的值在运行期间恒定不变。常量只能被引用,不能被重新赋值。一般情况下,程序中多次出现的数字或字符串定义为常量,可以增强程序的可读性、可维护性。例如,程序中经常用到圆周率3.14159265358979323846,则可以将它定义为常量PI。public static final double PI=3.14159265358979323846;当圆的半径为4时,求圆的面积公式可以直接写成:System.out.println(圆的面积:+PI*4*4);在接口中声明常量时,通常可以省去public static final,写成:double PI=3.14159265358979323846;在有的程序中,把所有类用到的共享常量集中存放在一个接口中,该接口中没有任何方法。当类实现这一接口时,实际上并不实现抽象方法,只是为了使用常量。例如:public interface Constants int FAILURE=0;int SUCCESS=1;/声明常量public class UseConstants implements Constantsint k;if(k=SUCCESS)/类的方法中使用常量10.4 必备知识 第29页/共32页303210.4 必备知识 在本任务必备知识的最后,小结一下学过的OOP的的三个基本特征:封装、继承和多态,三者的比较参见表10-1。基本特征定义实现好处封装隐藏实现细节,对外提供公共的访问接口属性私有化、添加公有的setter、getter方法增强代码的可维护性继承从一个已有的类派生出新的类,子类具有父类的一般特性,以及自身特殊的特性继承需要符合is-a关系实现抽象(抽出像的部分),增强代码的可复用性多态同一个实现接口,使用不同的实例而执行不同操作通过接口/继承来定义统一的实现接口;通过方法重写为不同的实现类/子类定义不同的操作增强代码的可扩展性、可维护性第30页/共32页313210.5 动手做一做一、实训目的掌握Java接口的定义、实现与使用;掌握Java接口与多态的关系;掌握面向接口编程的思想;掌握接口中常量的使用。二、实训内容设计几何图形(Shape)、矩形(Rectangle)、圆形(Circle)、正方形(Square),能够利用接口和多态性计算几何图形的面积和周长,并显示出来。三、简要提示几何图形只能是一种图形的抽象,不是一种具体的图形。矩形、圆形、正方形是实际存在的图形。将几何图形设计成接口Shape,具有计算面积和周长的功能。矩形、圆形、正方形设计成类,各自实现几何图形接口Shape的计算面积和周长的功能。在显示功能上,设计一个print(Shape shape)方法,形参为几何图形接口Shape。四、程序代码参见本教材教学资源。五、实训思考1.正确理解Java接口与多态的关系。2.程序中怎样运用面向接口编程的思想。第31页/共32页3232谢谢您的观看!第32页/共32页

    注意事项

    本文(Java程序设计任务驱动式教程 任务十 万能之手接口的使用.pptx)为本站会员(莉***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开