Java接口技术讲解课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《Java接口技术讲解课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 接口 技术 讲解 课件
- 资源描述:
-
1、Java编程精要 Java接口技术福建 厦门2016年6月本章目标本章目标n掌握Java接口n理解Java接口与多态的关系n掌握面向接口编程的思想n掌握常量接口的使用本章相关词汇本章相关词汇单单 词词说说 明明interface接口,界面接口,界面implements实现实现final最终的,决定性的最终的,决定性的生活中的接口n电脑主板上的PCI插槽的规范就类似于Java接口 每种卡的内部结构都不相同,可以把每种卡的内部结构都不相同,可以把声卡、网卡、显卡都插在声卡、网卡、显卡都插在PCI插槽上,插槽上,而不用担心哪个插槽是专门插哪个卡而不用担心哪个插槽是专门插哪个卡的的声卡声卡显卡显卡网卡
2、网卡主板主板Java中的接口 n一个Java接口是一些方法特征的集合,但没有方法的实现public interface PCI public void start();public void stop();这是这是Java接口,相当接口,相当于主板上的于主板上的PCI插槽的插槽的规范规范Java中的接口 class SoundCard implements PCI public void start()System.out.println(Du du.);public void stop()System.out.println(Sound stop!);Java接口中定义的方法在不同的地方被实
3、现,可以接口中定义的方法在不同的地方被实现,可以具有完全不同的行为具有完全不同的行为声卡、网卡都实现了声卡、网卡都实现了PCI插槽的规范,但行为完全不同插槽的规范,但行为完全不同 Java中的接口 class NetworkCard implements PCI public void start()System.out.println(Send.);public void stop()System.out.println(Network stop!);声卡、网卡都实现了声卡、网卡都实现了PCI插槽的规范,但行为完全不同插槽的规范,但行为完全不同 public class Assembler
4、public static void main(String args)PCI nc=new NetworkCard();PCI sc=new SoundCard();nc.start();sc.start();Java接口可以用于定义数据接口可以用于定义数据运行时,根据实际创建的对象类型调用相应的方运行时,根据实际创建的对象类型调用相应的方法实现法实现Du du.Send.控制台输出控制台输出Java中的接口 n为各学校开发这样一个小系统,包含类型:教员、学校、打印机,具体要求如下:教员、以及学校都具有方法:返回详细信息学校具有方法:打印,能够通过学校的打印机打印教员或学校的详细信息系统要具
5、备良好的可扩展性与可维护性打印打印 教员教员 学校学校 教员教员详细信息详细信息学校学校详细信息详细信息detail方法方法(输出详细信息)(输出详细信息)Java中的接口 n假设一个系统中包含三个类:教师(Teacher)、学校(School)、打印机(Printer),具有如下要求:教员和学校都具有方法tell,用于返回信息打印机能够将学校或教员返回的信息输出Java中的接口 打印打印 教员教员 学校学校 教员教员信息信息学校学校信息信息tell方法方法public class Teacher public String tell()return 本人是教员本人是教员;public cla
6、ss School public String tell()return 这里是学校这里是学校;public class Printer public void print(Teacher t)System.out.println(t.tell);public void print(School s)System.out.println(s.tell);每增加一种新类型,每增加一种新类型,都需要增加相应的都需要增加相应的print(类型名称类型名称 var)方法方法n可以使用多态来解决这个问题吗?可以使用多态来解决这个问题吗?教员教员 学校学校 tell方法方法教员教员信息信息学校学校信息信息
7、1221两个类具有同名方法,但具体实现不同,应根据具体的实例决定使用哪个tell方法满足使用多态的条件,但教员与学校两个类不存在共性,不适合由同一个基类派生教员、学校都存在一个共同的方法tell,它们对该方法有各自不同的实现这完全符合Java接口的定义定义一个定义一个Java接口,在接口,在其中定义其中定义tell方法,但没方法,但没有具体实现有具体实现实现这个实现这个Java接口,不接口,不同的类对同的类对tell方法有不同方法有不同的具体实现的具体实现IntroduceableTeacher(教员教员)School(学校学校)public class Teacher implements
8、Introduceablepublic String tell()return 本人是教员本人是教员;public class School implements Introduceable public String tell()return 这里是学校这里是学校;public interface Introduceable public String tell();public class Printer public void print(Introduceable intro)System.out.println(intro.tell);n使用print方法时,参数可以是任何Intro
9、duceable接口的实现类的对象,不必再为不同的类型建立不同的print方法了n通过Java接口,我们同样可以享受到多态性的好处,大大提高了程序的可扩展性及可维护性nJava接口允许多重实现(即一个类同时实现多个接口)编程练习n为刚才完成的系统增加一种新的类型:学员(Student),具体要求如下:学员具有tell方法,负责输出学员信息能够通过学校的打印机打印学员的信息n编写测试类进行测试面向接口编程n开发系统时,主体构架使用接口,接口构成系统的骨架n这样就可以通过更换接口的实现类来更换系统的实现IntroduceableTeacher(教员教员)School(学校学校)面向接口编程 升级上
10、述的系统,要求:打印机有多种类型,比如:黑白打印机、彩色打印机等 学校可能配备其中任意一款打印机,负责打印学校的详细信息print方法方法(打印)(打印)彩色打印机彩色打印机 黑白打印机黑白打印机 黑白内容黑白内容学校学校/教员教员 详细信息详细信息 彩色内容彩色内容抽象出Java接口(1)分析:黑白、彩色打印机都存在一个共同的方法特征print;黑白、彩色打印机对print方法有各自不同的实现(2)结论:抽象出Java接口PrinterInf,在其中定义方法print(3)具体实现:public interface PrinterInf public void print(String co
11、ntent);面向接口编程实现Java接口(1)分析:已经抽象出Java接口PrinterInf,并在其中定义了print方法黑白、彩色打印机对print方法有各自不同的实现(2)结论:黑白、彩色打印机都实现PrinterInf接口,各自实现print方法(3)具体实现:面向接口编程public class ColorPrinter implements PrinterInf public void print(String content)System.out.println(彩色打印:彩色打印:);System.out.println(content);public class Black
12、Printer implements PrinterInf public void print(String content)System.out.println(黑白打印:黑白打印:);System.out.println(content);使用Java接口更换实现接口的类就可以更换系统的实现面向接口编程public class School private PrinterInf printer;/打印机打印机 public void setPrinter(PrinterInf p)this.printer=p;public void print()printer.print(厦门理工学院厦
13、门理工学院);面向接口编程public class Test public static void main(String args)/创建学校实例创建学校实例 School school=new School();/为该学校配备黑白打印机为该学校配备黑白打印机 school.setPrinter(new BlackPrinter();school.print(school);/为该学校配备彩色打印机为该学校配备彩色打印机 school.setPrinter(new ColorPrinter();school.print(school);代码阅读阅读如下Java代码,然后请采用面向接口编程的思
14、想,在空白处填写正确的代码public interface PCI void start();void stop();class SoundCard implements PCI public void start()System.out.println(Du du.);public void stop()System.out.println(Sound stop!);class NetworkCard implements PCI public void start()System.out.println(Send.);public void stop()System.out.println
15、(Network stop!);这是这是Java接口,相当于主接口,相当于主板上的板上的PCI插槽的规范插槽的规范声卡、网卡都实现了声卡、网卡都实现了PCI插槽的规范,但行为完全不同插槽的规范,但行为完全不同public class MainBoard public void usePCICard(_ p)p.start();p.stop();public class Assembler public static void main(String args)MainBoard mb=new MainBoard();/在主板上插入网卡在主板上插入网卡 /在主板上插入声卡在主板上插入声卡 提示:
16、通过这个方法,主板上提示:通过这个方法,主板上可以插入任意符合可以插入任意符合PCI插槽规插槽规范的卡范的卡PCI nc=new NetworkCard();mb.usePCICard(nc);PCI sc=new SoundCard();mb.usePCICard(sc);PCI提示:可以通过更换实现接口的类提示:可以通过更换实现接口的类来更换系统的实现来更换系统的实现代码阅读常量概述n生活中,一周有七天,如何用代码表示?public class Week private int days=7;public static void main(String args)Week w=new We
17、ek();System.out.println(一周有一周有+w.days+天天);public class Week private int days=7;public static void main(String args)Week w=new Week();w.days+;System.out.println(一周有一周有+w.days+天天);一周有一周有7天天控制台输出控制台输出 然而,总有不尽人意的事情发生:一周有一周有8天天控制台输出控制台输出如何保证变量的值在运行期无法被改变?如何保证变量的值在运行期无法被改变?使用常量使用常量 n常量是一种标识符,它的值在运行期间恒定不变n
18、常量标识符在程序中只能被引用,而不能被重新赋值常量常量圆周率圆周率PI圆周率圆周率PI代码表示代码表示方式方式public static final double PI=3.14159265358979323846;用法用法将将ang角度转换成径度角度转换成径度 public static double toRadians(double ang)return ang/180.0*PI;常量概述n如果不使用常量,直接在程序中填写数字或字符串,将会有什么麻烦?public static double toRadians(double ang)return ang/180.0*3.141592653
展开阅读全文