Java语法之接口课件

上传人:我*** 文档编号:144960923 上传时间:2020-09-14 格式:PPT 页数:23 大小:1.57MB
返回 下载 相关 举报
Java语法之接口课件_第1页
第1页 / 共23页
Java语法之接口课件_第2页
第2页 / 共23页
Java语法之接口课件_第3页
第3页 / 共23页
Java语法之接口课件_第4页
第4页 / 共23页
Java语法之接口课件_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《Java语法之接口课件》由会员分享,可在线阅读,更多相关《Java语法之接口课件(23页珍藏版)》请在金锄头文库上搜索。

1、3、接口,2,掌握Java接口 理解Java接口与多态的关系 掌握面向接口编程的思想 掌握常量接口的使用,目标,3,生活中的接口,电脑主板上的PCI插槽的规范就类似于Java接口,声卡,显卡,网卡,每种卡的内部结构都不相同,可以把声卡、网卡、显卡都插在PCI插槽上,而不用担心哪个插槽是专门插哪个卡的,主板,4,什么是Java接口 2-1,一个Java接口是一些方法特征的集合,但没有方法的实现,public interface PCI public void start(); public void stop();,class SoundCard implements PCI public vo

2、id start() System.out.println(Du du.); public void stop() System.out.println(Sound stop!); ,Java接口中定义的方法在不同的地方被实现,可以具有完全不同的行为,这是Java接口,相当于主板上的PCI插槽的规范,class NetworkCard implements PCI public void start() System.out.println(Send.); public void stop() System.out.println(Network stop!); ,声卡、网卡都实现了PCI插槽

3、的规范,但行为完全不同,5,什么是Java接口 2-2,public class Assembler public static void main(String args) PCI nc = new NetworkCard(); PCI sc = new SoundCard(); nc.start(); sc.start(); ,可以使用Java接口标识类型 运行时,根据实际创建的对象类型调用相应的方法实现,Du du. Send.,控制台输出,2,1,6,为什么需要Java接口 5-1,为各中心开发这样一个小系统,包含类型:教员、中心、打印机,具体要求如下: 教员、以及中心都具有方法:输出

4、详细信息 中心具有属性:打印机,能够通过中心的打印机打印教员或中心的详细信息 系统要具备良好的可扩展性与可维护性,打印,教员,中心,教员详细信息,中心详细信息,detail方法 (输出详细信息),7,为什么需要Java接口 5-2,以下这个解决方案中存在着什么问题?,public class Teacher1 /输出教员的详细信息 public String detail() return 本人是教员; ,public class School1 private Printer printer = new Printer(); /输出中心的详细信息 public String detail()

5、 return 这里是中心; /使用打印机打印教员信息 public void print(Teacher1 t) printer.print(t.detail(); /使用打印机打印中心信息 public void print(School1 s) printer.print(s.detail(); ,public class Printer public void print(String content) System.out.println(开始打印:); System.out.println(content); ,每增加一种新类型,都需要增加相应的print(类型名称 var)方法

6、程序的可扩展性及可维护性极差 这不符合系统的要求,8,为什么需要Java接口 5-3,可以通过多态性解决这个问题吗?,显然,本系统符合使用多态性的条件,教员,中心,detail方法 (负责输出详细信息),教员详细信息,中心详细信息,1,2,2,1,回顾多态的含义: 实现同一个接口,使用不同的实例而执行不同操作,9,为什么需要Java接口 5-4,在这个系统中,存在继承关系吗? 教员、中心属于两种不同的类型,无法通过“is-a”找到一个合适的父类 教员、中心都存在一个共同的方法特征:detail,它们对detail方法有各自不同的实现这完全符合Java接口的定义,定义一个Java接口,在其中定义

7、detail方法,但没有具体实现,实现这个Java接口,不同的类对detail方法有不同的具体实现,10,为什么需要Java接口 5-5,public interface Introduceable public String detail(); ,public class School2 implements Introduceable private Printer printer = new Printer(); /输出中心的详细信息 public String detail() return 这里是中心; /使用中心打印机打印信息 public void print(Introduce

8、able intro) printer.print(intro.detail(); ,public class Teacher2 implements Introduceable /输出教员的详细信息 public String detail() return 本人是教员; ,通过Java接口,我们同样可以享受到多态性的好处,大大提高了程序的可扩展性及可维护性,使用print方法时,参数可以是任何Introduceable接口的实现类的对象,不必再为不同的类型建立不同的print方法了,使用了Java接口之后,这个系统有了怎样的改进?,11,什么是面向接口编程,开发系统时,主体构架使用接口,接

9、口构成系统的骨架 这样就可以通过更换接口的实现类来更换系统的实现,public class School2 implements Introduceable private Printer printer = new Printer(); public String detail() return 这里是中心; /使用中心打印机打印信息 public void print(Introduceable intro) printer.print(intro.detail(); ,Introduceable,Teacher2 (教员),School2 (中心),12,面向接口编程的示例 4-1,升级

10、上述的系统,要求: 打印机有多种类型,比如:黑白打印机、彩色打印机等 中心可能配备其中任意一款打印机,负责打印教员、或者中心的详细信息 系统要具备良好的可扩展性与可维护性,print方法 (打印),彩色打印机,黑白打印机,黑白内容,中心/教员 详细信息,彩色内容,13,面向接口编程的示例 4-2,采用面向接口编程的方式实现,以下是三个步骤中的第一步:,抽象出Java接口 1、分析: 黑白、彩色打印机都存在一个共同的方法特征:print 黑白、彩色打印机对print方法有各自不同的实现 2、结论: 抽象出Java接口PrinterFace,在其中定义方法print 3、具体实现:,public

11、interface PrinterFace public void print(String content); ,14,面向接口编程的示例 4-3,采用面向接口编程的方式实现,以下是三个步骤中的第二步:,public class ColorPrinter implements PrinterFace public void print(String content) System.out.println(彩色打印:); System.out.println(content); ,public class BlackPrinter implements PrinterFace public v

12、oid print(String content) System.out.println(黑白打印:); System.out.println(content); ,实现Java接口 1、分析: 已经抽象出Java接口PrinterFace,并在其中定义了print方法 黑白、彩色打印机对print方法有各自不同的实现 2、结论: 黑白、彩色打印机都实现PrinterFace接口,各自实现print方法 3、具体实现:,15,面向接口编程的示例 4-4,采用面向接口编程的方式实现,以下是三个步骤中的第三步:,使用Java接口 1、分析: 主体构架使用接口, 让接口构成系统的骨架 2、结论: 更

13、换实现接口的类就可以更换系统的实现 3、具体实现:,public class School3 implements Introduceable private PrinterFace printer; /打印机 public void setPrinter(PrinterFace p) this.printer = p; public String detail() return 这里是中心; public void print(Introduceable intro) printer.print(intro.detail(); ,public class Test public static

14、 void main(String args) / 创建中心实例 School3 school=new School3(); /为该中心配备黑白打印机 school.setPrinter(new BlackPrinter(); school.print(school); /为该中心配备彩色打印机 school.setPrinter(new ColorPrinter(); school.print(school); ,16,小结 2,阅读如下Java代码,然后请采用面向接口编程的思想,在空白处填写正确的代码,public interface PCI void start(); void stop

15、();,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(Network stop!); ,这是Java接口,相当于主板上的PCI插槽的规范,声卡、网

16、卡都实现了PCI插槽的规范,但行为完全不同,17,小结 2,public class MainBoard public void usePCICard(_ p) p.start(); p.stop(); ,public class Assembler public static void main(String args) MainBoard mb=new MainBoard(); /在主板上插入网卡 /在主板上插入声卡 ,提示:通过这个方法,主板上可以插入任意符合PCI插槽规范的卡,PCI nc=new NetworkCard(); mb.usePCICard(nc);,PCI sc=new SoundCard();mb.usePCICard(sc);,PCI,提示:可以通过更换实现接口的类来更换系统的实现,1

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号