教案Java语言程序设计教案56学时第6章Word文档下载推荐.docx
- 文档编号:17309038
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:15
- 大小:23.16KB
教案Java语言程序设计教案56学时第6章Word文档下载推荐.docx
《教案Java语言程序设计教案56学时第6章Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《教案Java语言程序设计教案56学时第6章Word文档下载推荐.docx(15页珍藏版)》请在冰豆网上搜索。
12
JDBC与MySQL数据库
12-13
Java多线程机制
13
Java网络的基本知识
总结
总学时
各章教学实施计划
章节题目第6章接口与实现
6.1节-6.10节
学时
教学目的、要求(分了解、理解、掌握三个层次):
1、掌握接口的定义、类实现接口
2、掌握接口回调、接口参数。
3、了解面向接口编程。
教学内容(包括基本内容、重点、难点):
基本内容:
◆接口
◆实现接口
◆理解接口
◆接口回调
◆接口与多态
◆接口参数
◆面向接口编程
教学重点:
重点是理解接口,抽象类和接口的区别。
教学难点:
难点是抽象类和接口的异同点。
讨论、思考题、作业:
习题6
调试例子6
预习第7章
参考书目(含参考书、文献等)具体内容:
参考书对应章节
课堂教学实施计划
第11课
教学过程设计:
复习分钟;
授新课95分钟
讨论5分钟;
其它分钟
授课类型(请打√):
理论课√讨论课□实验课□习题课□其它□
教学方式(请打√):
讲授√讨论□示教□指导□其它□
教学手段(请打√):
多媒体模型□实物□挂图□音像□其它√
主要内容
v接口
v实现接口
v理解接口
v接口回调
v接口与多态
v接口参数
v面向接口编程
第6章接口与实现
Java不支持多重继承(子类只能有一个父类)。
§
6.1接口
为了克服Java单继承的缺点,Java使用了接口,一个类可以实现多个接口。
使用关键字interface来定义一个接口。
接口的定义和类的定义很相似,分为接口的声明和接口体。
接口声明
接口通过使用关键字interface来声明
格式:
interface接口的名字
接口体
接口体中包含常量定义和方法定义两部分。
接口体中只进行方法的声明,不许提供方法的实现,所以,方法的定义没有方法体,且用分号“;
”结尾。
如:
接口的变量和方法的构成规则:
接口中的变量自动都是public、static,final,
接口中的方法默认为publicabstract;
接口也产生class文件。
接口中的方法不能被static和final修饰,因为要重写所有接口中的方法。
接口中没有构造函数,方法可以抛出异常。
6.2实现接口
一个类通过使用关键字implements声明自己实现一个或多个接口。
classAimplementsPrintable,Addable
如果一个类实现了某个接口,那么这个类必须重写该接口的所有方法。
接口可以通过继承产生新的接口。
Java提供的接口都在相应的包中,通过import语句不仅可以引入包中的类,也可以引入包中的接口,
例如:
importjava.io.*;
例子1
Computable.java
publicinterfaceComputable{
intMAX=46;
intf(intx);
}
China.java
publicclassChinaimplementsComputable{//China类实现Computable接口
intnumber;
publicintf(intx){//不要忘记public关键字
intsum=0;
for(inti=1;
i<
=x;
i++){
sum=sum+i;
}
returnsum;
Japan.java
publicclassJapanimplementsComputable{//Japan类实现Computable接口
publicintf(intx){
returnMAX+x;
//直接使用接口中的常量
Example6_1.java
publicclassExample6_1{
publicstaticvoidmain(Stringargs[]){
Chinazhang;
Japanhenlu;
zhang=newChina();
henlu=newJapan();
zhang.number=32+Computable.MAX;
//用接口名访问接口的常量
henlu.number=14+Computable.MAX;
System.out.println("
zhang的学号"
+zhang.number+"
zhang求和结果"
+zhang.f(100));
henlu的学号"
+henlu.number+"
henlu求和结果"
+henlu.f(100));
6.3接口的UML图(了解)
表示接口的UML图和表示类的UML图类似,使用一个长方形描述一个接口的主要构成,将长方形垂直地分为三层。
顶部第1层是名字层。
第2层是常量层。
第3层是方法层。
6.4接口回调(重点,难点)
接口回调是指:
可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中,那么该接口变量就可以调用被类重写的接口方法。
实际上,当接口变量调用被类重写的接口方法时,就是通知相应的对象调用这个方法。
例子2
例子2
Example6_2.java
interfaceShowMessage{
void显示商标(Strings);
classTVimplementsShowMessage{
publicvoid显示商标(Strings){
System.out.println(s);
classPCimplementsShowMessage{
publicvoid显示商标(Strings){
publicclassExample6_2{
ShowMessagesm;
//声明接口变量
sm=newTV();
//接口变量中存放对象的引用
sm.显示商标("
长城牌电视机"
);
//接口回调
sm=newPC();
联想奔月5008PC机"
//接口回调
}
6.5理解接口
接口的语法规则很容易记住,但真正理解接口更重要。
理解的关键点是:
(1)接口可以抽象出重要的行为标准,该行为标准用抽象方法来表示。
(2)可以把实现接口的类的对象的引用赋值给接口变量,该接口变量可以调用被该类实现的接口方法,即体现该类根据接口里的行为标准给出的具体行为。
例子3
Example6_3.java
abstractclassMotorVehicles{
abstractvoidbrake();
interfaceMoneyFare{
voidcharge();
interfaceControlTemperature{
voidcontrolAirTemperature();
classBusextendsMotorVehiclesimplementsMoneyFare{
voidbrake(){
公共汽车使用毂式刹车技术"
publicvoidcharge(){
公共汽车:
一元/张,不计算公里数"
}
classTaxiextendsMotorVehiclesimplementsMoneyFare,
ControlTemperature{
出租车使用盘式刹车技术"
出租车:
2元/公里,起价3公里"
publicvoidcontrolAirTemperature(){
出租车安装了Hair空调"
classCinemaimplementsMoneyFare,ControlTemperature{
电影院:
门票,十元/张"
电影院安装了中央空调"
publicclassExample6_3{
Busbus101=newBus();
TaxibuleTaxi=newTaxi();
CinemaredStarCinema=newCinema();
MoneyFarefare;
ControlTemperaturetemperature;
fare=bus101;
bus101.brake();
fare.charge();
fare=buleTaxi;
temperature=buleTaxi;
buleTaxi.brake();
temperature.controlAirTemperature();
fare=redStarCinema;
temperature=redStarCinema;
6.6接口与多态
可以通过在接口中声明若干个abstract方法,表明这些方法的重要性,方法体的内容细节由实现接口的类去完成。
使用接口进行程序设计的核心思想是使用接口回调,即接口变量存放实现该接口的类的对象的引用,从而接口变量就可以回调类实现的接口方法。
例子4
例子4
Example6_4.java
interfaceCompurerAverage{
publicdoubleaverage(doublea,doubleb);
classAimplementsCompurerAverage{
publicdoubleaverage(doublea,doubleb){
doubleaver=0;
aver=(a+b)/2;
returnaver;
classBimplementsCompurerAverage{
aver=Math.sqrt(a*b);
publicclassExample6_4{
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);
%5.2f和%5.2f的几何平均值:
%5.2f"
6.7接口参数
如果一个方法的参数是接口类型,我们就可以将任何实现该接口的类的实例的引用传递给该接口参数,那么接口参数就可以回调类实现的接口方法。
例子5
Example6_5.java
interfaceSpeakHello{
voidspeakHello();
classChineseimplementsSpeakHello{
publicvoidspeakHello(){
中国人习惯问候语:
你好,吃饭了吗?
"
classEnglishimplementsSpeakHello{
英国人习惯问候语:
你好,天气不错"
classKindHello{
publicvoidlookHello(SpeakHellohello){//接口类型参数
hello.speakHello();
publicclassExample6_5{
KindHellokindHello=newKindHello();
kindHello.lookHello(newChinese());
kindHello.lookHello(newEnglish());
6.8abstract类与接口的比较(简单介绍,建议学生自主学习)
接口和abstract类的比较如下:
abstract类和接口都可以有abstract方法。
接口中只可以有常量,不能有变量;
而abstract类中即可以有常量也可以有变量。
abstract类中也可以有非abstract方法,接口不可以。
6.9面向接口编程(简单介绍,建议学生自主学习)
面向接口去设计程序,可以通过在接口中声明若干个abstract方法,表明这些方法的重要性,方法体的内容细节由实现接口的类去完成。
6.10应用举例
设计一个广告牌,希望所设计的广告牌可以展示许多公司的广告词。
接口的接口体中只可以有常量和abstract方法。
和类一样,接口也是Java中一种重要的引用型数据类型。
当接口变量中存放了实现接口的类的对象的引用后,接口变量就可以调用类实现的接口方法,这一过程被称为接口回调。
和子类体现多态类似,由接口产生的多态就是指不同的类在实现同一个接口时可能具有不同的实现方式。
在使用多态设计程序时,要熟练使用接口回调技术以及面向接口编程的思想,以便体现程序设计所提倡的“开-闭”原则。
作业
习题6:
2,3,4
本章结束
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教案 Java 语言程序设计 56 学时