(教案)Java语言程序设计_教案56学时_第6章
- 格式:doc
- 大小:94.00 KB
- 文档页数:10
1
授 课 内 容 学时分配 教学方法与手段 进度计划
(周次) 课堂讲授(学时) 上机实践(学时)
Java 语言入门
标识符、关键字和数据类型
运算符、表达式和语句 6 4 2 1~2
类与对象 14 10 4 2~5
子类与继承 6 4 2 5-7
接口与实现 4 2 2 7-8
内部类与异常类 2 2 0 8
常用实用类 6 4 2 9-10
组件及事件处理 6 4 2 10-11
输入、输出流 2 2 0 12
JDBC与MySQL数据库 4 2 2 12-13
Java多线程机制 2 2 0 13
Java网络的基本知识 2 2 0 14
总结 2 2 0 14
总学时 56 40 16 2 各 章 教 学 实 施 计 划
章节题目 第6章 接口与实现
6.1节-6.10节 学 时 2
教学目的、要求(分了解、理解、掌握 三个层次):
1、掌握接口的定义、类实现接口
2、掌握接口回调、接口参数。
3、了解面向接口编程。
教学内容(包括基本内容、重点、难点):
基本内容:
◆ 接口
◆ 实现接口
◆ 理解接口
◆ 接口回调
◆ 接口与多态
◆ 接口参数
◆ 面向接口编程
教学重点 :
重点是理解接口,抽象类和接口的区别。
教学难点:
难点是抽象类和接口的异同点。
讨论、思考题、作业:
习题6
调试例子6
预习第7章
参考书目(含参考书、文献等)具体内容:
参考书对应章节 3 课 堂 教 学 实 施 计 划
第 11课 教学过程设计: 复习 分钟;授新课 95 分钟
讨论 5 分钟;其它 分钟
授课类型(请打√):理论课√ 讨论课□ 实验课□ 习题课□ 其它□
教学方式(请打√):讲 授√ 讨 论□ 示 教□ 指 导□ 其它□
教学手段(请打√):多媒体 模 型□ 实 物□ 挂 图□ 音像□ 其它√
主要内容
基本内容:
❖ 接口
❖ 实现接口
❖ 理解接口
❖ 接口回调
❖ 接口与多态
❖ 接口参数
❖ 面向接口编程
教学重点 :
重点是理解接口,抽象类和接口的区别。
教学难点:
难点是抽象类和接口的异同点。
第6章 接口与实现
Java不支持多重继承(子类只能有一个父类)。
§6.1 接口
为了克服Java单继承的缺点,Java使用了接口,一个类可以实现多个接口。
使用关键字interface来定义一个接口。接口的定义和类的定义很相似,分为接口的声明和接口体。
接口声明
接口通过使用关键字interface来声明
格式:interface 接口的名字
接口体
接口体中包含常量定义和方法定义两部分。接口体中只进行方法的声明,不许提供方法的实现,所以,方法的定义没有方法体,且用分号“;”结尾。如: 4 接口的变量和方法的构成规则:
接口中的变量自动都是public、static,final,
接口中的方法默认为public abstract;接口也产生class文件。
接口中的方法不能被static和final修饰,因为要重写所有接口中的方法。
接口中没有构造函数,方法可以抛出异常。
§6.2 实现接口
一个类通过使用关键字implements声明自己实现一个或多个接口。
如:class A implements Printable,Addable
如果一个类实现了某个接口,那么这个类必须重写该接口的所有方法。
接口可以通过继承产生新的接口。
Java提供的接口都在相应的包中,通过import语句不仅可以引入包中的类,也可以引入包中的接口,
例如:import java.io.*;
例子1
Computable.java
public interface Computable {
int MAX = 46;
int f(int x);
}
China.java
public class China implements Computable { //China类实现Computable接口
int number;
public int f(int x) { //不要忘记public关键字
int sum = 0;
for(int i=1;i<=x;i++) {
sum = sum+i;
}
return sum;
}
}
Japan.java
public class Japan implements Computable { //Japan类实现Computable接口
int number;
public int f(int x) {
return MAX+x; //直接使用接口中的常量 5 }
}
Example6_1.java
public class Example6_1 {
public static void main(String args[]) {
China zhang;
Japan henlu;
zhang = new China();
henlu = new Japan();
zhang.number = 32+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));
}
}
6.3 接口的UML图(了解)
表示接口的UML图和表示类的UML图类似,使用一个长方形描述一个接口的主要构成,将长方形垂直地分为三层。
顶部第1层是名字层。
第2层是常量层。
第3层是方法层。
§6.4 接口回调(重点,难点)
接口回调是指:可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中,那么该接口变量就可以调用被类重写的接口方法。实际上,当接口变量调用被类重写的接口方法时,就是通知相应的对象调用这个方法。例子2
例子2
Example6_2.java
interface ShowMessage {
void 显示商标(String s);
}
class TV implements ShowMessage {
public void 显示商标(String s) {
System.out.println(s);
}
}
class PC implements ShowMessage {
public void 显示商标(String s) {
System.out.println(s);
}
} 6 public class Example6_2 {
public static void main(String args[]) {
ShowMessage sm; //声明接口变量
sm = new TV(); //接口变量中存放对象的引用
sm.显示商标("长城牌电视机"); //接口回调
sm = new PC(); //接口变量中存放对象的引用
sm.显示商标("联想奔月5008PC机"); //接口回调
}
}
§6.5 理解接口
接口的语法规则很容易记住,但真正理解接口更重要。
理解的关键点是:
(1)接口可以抽象出重要的行为标准,该行为标准用抽象方法来表示。
(2)可以把实现接口的类的对象的引用赋值给接口变量,该接口变量可以调用被该类实现的接口方法,即体现该类根据接口里的行为标准给出的具体行为。
例子3
Example6_3.java
abstract class MotorVehicles {
abstract void brake();
}
interface MoneyFare {
void charge();
}
interface ControlTemperature {
void controlAirTemperature();
}
class Bus extends MotorVehicles implements MoneyFare {
void brake() {
System.out.println("公共汽车使用毂式刹车技术");
}
public void charge() {
System.out.println("公共汽车:一元/张,不计算公里数");
}
}
class Taxi extends MotorVehicles implements MoneyFare,
ControlTemperature {
void brake() {
System.out.println("出租车使用盘式刹车技术");
}
public void charge() {
System.out.println("出租车:2元/公里,起价3公里");