(教案)Java程序设计精编教程(第3版)-教案48学时-第7章_第1页
(教案)Java程序设计精编教程(第3版)-教案48学时-第7章_第2页
(教案)Java程序设计精编教程(第3版)-教案48学时-第7章_第3页
(教案)Java程序设计精编教程(第3版)-教案48学时-第7章_第4页
(教案)Java程序设计精编教程(第3版)-教案48学时-第7章_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

PAGEPAGE5授课内容学时分配教学方法与手段进度计划(周次)课堂讲授(学时)上机实践(学时)Java入门2201Java应用程序的基本结构4221-2标识符与简单的数据类型运算符、表达式与语句2202类与对象8623~4子类与继承4405接口与实现4226内部类与异常类2207常用实用类4407-8输入、输出流2208组件及事件处理6429-10Java多线程机制44010-11Java网络编程22011JDBC数据库操作42212总学时=SUM(ABOVE)48=SUM(ABOVE)38=SUM(ABOVE)10

各章教学实施计划章节题目第7章接口与实现7.1节-7.9节学时2教学目的、要求(分了解、理解、掌握三个层次):1、掌握接口的定义、类实现接口2、掌握接口回调、接口参数。3、了解面向接口编程。基本内容:◆ 接口◆ 实现接口◆ 理解接口◆ 接口的UML图◆ 接口回调◆ 接口与多态◆ 接口变量做参数◆ abstract类与接口的比较◆ 面向接口编程教学重点:重点是理解接口,抽象类和接口的区别。教学难点:难点是抽象类和接口的异同点。讨论、思考题、作业:P128习题71-4题预习第8章参考书目(含参考书、文献等)具体内容:参考书对应章节

课堂教学实施计划第9课教学过程设计:复习分钟;授新课95分钟讨论5分钟;其它分钟授课类型(请打√):理论课√讨论课□实验课□习题课□其它□教学方式(请打√):讲授√讨论□示教□指导□其它□教学手段(请打√):多媒体模型□实物□挂图□音像□其它√主要内容◆ 接口◆ 实现接口◆ 理解接口◆ 接口的UML图◆ 接口回调◆ 接口与多态◆ 接口变量做参数◆ abstract类与接口的比较◆ 面向接口编程教学重点:重点是理解接口,抽象类和接口的区别。教学难点:难点是抽象类和接口的异同点。§7.1接口为了克服Java单继承的缺点,Java使用了接口,一个类可以实现多个接口。使用关键字interface来定义一个接口。接口的定义和类的定义很相似,分为接口的声明和接口体。interfacePrintable{finalintMAX=100;voidadd();floatsum(floatx,floaty);}1.接口声明接口通过使用关键字interface来声明,格式:interface接口的名字2.接口体接口体中包含常量定义和方法定义两部分。§7.2实现接口(重点)一个类通过使用关键字implements声明自己实现一个或多个接口。如:classAimplementsPrintable,Addable如果一个类实现了某个接口,那么这个类必须重写该接口的所有方法。接口可以通过继承产生新的接口。Java提供的接口都在相应的包中,通过import语句不仅可以引入包中的类,也可以引入包中的接口,例如:importjava.io.*例子1Computable.javapublicinterfaceComputable{intMAX=100;intf(intx);}China.javapublicclassChinaimplementsComputable{//China类实现Computable接口intnumber;publicintf(intx){//不要忘记public关键字intsum=0;for(inti=1;i<=x;i++){sum=sum+i;}returnsum;}}Japan.javapublicclassJapanimplementsComputable{//Japan类实现Computable接口intnumber;publicintf(intx){return46+x;}}Example7_1.javapublicclassExample7_1{publicstaticvoidmain(Stringargs[]){Chinazhang;Japanhenlu;zhang=newChina();henlu=newJapan();zhang.number=28+Computable.MAX;henlu.number=14+Computable.MAX;System.out.println("zhang的学号"+zhang.number+",zhang求和结果"+zhang.f(100));System.out.println("henlu的学号"+henlu.number+",henlu求和结果"+henlu.f(100));}}§7.3理解接口接口可以增加很多类都需要具有的功能,不同的类可以实现相同的接口,同一个类也可以实现多个接口。接口只关心操作,并不关心操作的具体实现接口的思想在于它可以增加很多类都需要具有的功能,而且实现相同的接口类不一定有继承关系。§7.4接口的UML图(简单介绍)表示接口的UML图和表示类的UML图类似,使用一个长方形描述一个接口的主要构成,将长方形垂直地分为三层。第1层是名字层、第2层是常量层、第3层是方法层。§7.5接口回调(重点、难点)接口回调是指:可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中,那么该接口变量就可以调用被类重写的接口方法。实际上,当接口变量调用被类重写的接口方法时,就是通知相应的对象调用这个方法。例子2Example7_2.javainterfaceShowMessage{void显示商标(Strings);}classTVimplementsShowMessage{publicvoid显示商标(Strings){System.out.println(s);}}classPCimplementsShowMessage{publicvoid显示商标(Strings){System.out.println(s);}}publicclassExample7_2{publicstaticvoidmain(Stringargs[]){ShowMessagesm;//声明接口变量sm=newTV();//接口变量中存放对象的引用sm.显示商标("长城牌电视机");//接口回调。sm=newPC();//接口变量中存放对象的引用sm.显示商标("联想奔月5008PC机");//接口回调}}§7.6接口与多态可以通过在接口中声明若干个abstract方法,表明这些方法的重要性,方法体的内容细节由实现接口的类去完成。使用接口进行程序设计的核心思想是使用接口回调,即接口变量存放实现该接口的类的对象的引用,从而接口变量就可以回调类实现的接口方法。例子3Example7_3.javainterfaceCompurerAverage{publicdoubleaverage(doublea,doubleb);}classAimplementsCompurerAverage{publicdoubleaverage(doublea,doubleb){doubleaver=0;aver=(a+b)/2;returnaver;}}classBimplementsCompurerAverage{publicdoubleaverage(doublea,doubleb){doubleaver=0;aver=Math.sqrt(a*b);returnaver;}}publicclassExample7_3{publicstaticvoidmain(Stringargs[]){CompurerAveragecomputer;doublea=11.23,b=22.78;computer=newA();doubleresult=computer.average(a,b);System.out.printf("%5.2f和%5.2f的算术平均值:%5.2f\n",a,b,result);computer=newB();result=computer.average(a,b);System.out.printf("%5.2f和%5.2f的几何平均值:%5.2f",a,b,result);}}§7.7接口变量做参数如果一个方法的参数是接口类型,我们就可以将任何实现该接口的类的实例的引用传递给该接口参数,那么接口参数就可以回调类实现的接口方法。图7.图7.8接口与参数Example7_4.javainterfaceSpeakHello{voidspeakHello();}classChineseimplementsSpeakHello{publicvoidspeakHello(){System.out.println("中国人习惯问候语:你好,吃饭了吗?");}}classEnglishimplementsSpeakHello{publicvoidspeakHello(){System.out.println("英国人习惯问候语:你好,天气不错");}}classKindHello{publicvoidlookHello(SpeakHellohello){//接口类型参数hello.speakHello();//接口回调}}publicclassExample7_4{publicstaticvoidmain(Stringargs[]){KindHellokindHello=newKindHello();kindHello.lookHello(newChinese());kindHello.lookHello(newEnglish());}}§7.8abstract类与接口的比较(简单介绍,建议学生自主学习)接口和abstract类的比较如下:1.abstract类和接口都可以有abstract方法。2.接口中只可以有常量,不能有变量;而abstract类中即可以有常量也可以有变量。3.abstract类中也可以有非abstract方法,接口不可以。§7.9面向接口编程(简单介绍,建议学生自主学习)面向接口去设计程序,可以通过在接口中声明若干个abstract方法,表明这些方法的重要性,方法体的内容细节由实现接口的类去完成。使用接口进行程序设计的核心思想是使用接口回调,即接口变量存放实现该接口的类的对象的引用,从而接口变量就可以回调类实现的接口方法。例子5Advertisement.javapublicinterfaceAdvertisement{//接口publicvoidshowAdvertisement();publicStringgetCorpName();}AdvertisementBoard.javapublicclassAdvertisementBoard{//负责创建广告牌publicvoidshow(Advertisementadver){System.out.println(adver.getCorpName()+"的广告词如下:");adver.showAdvertisement();//接口回调}}WhiteCloudCorp.javapublicclassWhiteCloudCorpimplementsAdvertisement{//PhilipsCorp实现Avertisement接口publicvoidshowAdvertisement(){System.out.println("@@@@@@@@@@@@@@@@@@@@@@");System.out.printf("飞机中的战斗机,哎yes!\n");System.out.println("@@@@@@@@@@@@@@@@@@@@@@");}publicStringgetCorpName(){return"白云有限公司";}}BlackLandCorp.javapublicclassBlackLandCorpimplementsAdvertisement{publicvoidshowAdve

温馨提示

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

评论

0/150

提交评论