您好,欢迎来到划驼旅游。
搜索
您的当前位置:首页java教案

java教案

来源:划驼旅游
附件1:

湖南科技职业学院

课堂教学设计方案(第 周第 次课)

课 题 授课班级 Java继承和多态中的接口 课时 知识目标: (1)学会继承的相关概念 (2)掌握重写方法的方式: (3)掌握接口的相关知识 (4)掌握接口的简单运用 教学目标(7)学会如何使用抽象类与接口: (含知识、(8)掌握使用多态与接口结合的相关知识内容 技能、态度能力目标: 养成目标) (1)提高自己解决实际问题的能力: (2)理解抽象方法在程序设计中所起到的作用: (3)能够会使用多态与接口结合的技术来解决实际问题,从而更好的提高自己的能力技术水平。 重点、难点 重点:继承、接口、抽象类、多态、工具类。 难点:继承、多态。 能力训练任务:帮助学生学会如何使用抽象类与接口,掌握使用多态与接口能力训练结合的技术,会使用多态与接口结合的技术来解决实际问题 任务、案例 案例一:子承父业、案例二:重写equals()方法 教学方法教学方法:通过投影设备以及PPT向学生进行讲解。 与 组织形式:课堂教学的形式进行授课讲解 组织形式 教学条件:投影设备、多媒体设备 教学素材:参考教材、课件、授课录像 教学环境 布置相应的练习作业,学会使用多态与接口结合的技术以及使用常用工具类课后练习 来解决实际问题。 编写动物世界的继承关系代码。动物(Animal) 包括山羊(Goat) 和狼(Wolf),它们吃(eat) 的行为不同,山羊吃草,狼吃肉,但走路(walk)的行为是一致的。通过继承实现以上需求,并编写AnimalTest测试类进行测试。 通过教师启发讲授,学生交流互动,听讲思考的形式,从而更好的推动学生学习评价 对于相关知识的学习,提高学生的课堂认真程度。 教学后记 课程教学要更加注重实践,将实践和文本教学相融合,从而更好的提高学生的学习能力。让学生能够更加扎实的掌握相关知识和技能。 (教学过程设计附后) 湖 南 科 技 职 业 学 院 备 课 纸

一、继承的概述 类的继承是面向对象的程序设计语言所具有的重要技术。 引入继承机制就是利用现有的类来定义新的类。这是面向对 象程序设计的一个原则:不必每次都从头开始定义一个新的类,而 是将这个新的类作为一个或若干个现有类的扩充或特殊化。如果 不使用继承,每个类都必须显式地定义它所有的特征。然而使用 继承后,定义一个新的类时只需定义那些与其他类不同的特征, 那些与其他类相同的通用特征则可从其他类继承下来,而不必逐 一显式地定义这些通用特征。 继承 是存在于面向对象程序中两个类之间的种关系(子类与 父类关系)。 (1)被继承的类称为父类或超类,继承父类或超类的所有属性 和方法的类称为子类; (2)父类是所有子类的公共域和公共方法的集合,而每一个子 类则是父类的特殊化,是对公共域和方法在功能、内涵方面的扩 展和延伸,即子类将继承父类的状态和行为,同时子类可以增加 变量和方法,也可以重载继承的方法并且为这些方法提供特殊实 现。 (3)使用继承的主要优点是使程序结构清晰、降低编码和维护 的工作量。继承为组织和构造软件程序提供了一个强大的和自然 的机理。 在Java中使用extends关键字完成类的继承关系,操作格式: class父类{ //定义父类 class 子类extends父类{ //使用extends关键字实现继承 } 如果缺省extends子句,则该类的超类时系统声明的类java.lang.Object 子类继承父类中不是private的成员变量作为自己的成员变量,并且自然地继承父类中不是private的方法作为自己的方法 二、类的继承原则 java中当声明了直接子类和直接父类的继承关系后,直接子类继承直接超类应遵循如下的继承规则: 直接子类继承那些被声明为public和protected的直接超类成员(包括成员变量和成员方法); 真接子类继承那些未被存取权限修饰符修饰的直接超类成员,只要该子类与该超类在同一个包中; 如果直接子类声明了一个与直接超类中的成员同名的成员,则该子类不继承该超类中的该同名成员; 直接子类不继承被修饰为private的直接超类的成员不能继承超类的构造方法. 三、接口 1、接口 接口是java中最重要的概念,接口可以理解为一种特殊的类, 里面全部是由全局常量和公共的抽象方法所组成。在实际应用中主要用来制定标准。比如说:“U盘 和打印机都可以插在电脑上使用,这是因为它们都实现了USB的接口,对于电脑来说,只要是符合了USB接口标准的设备就都可以插进来 接口(interface) 就是方法定义和常量值的集合。从本质上讲,扩双击编辑页眉中特殊的抽象类,这种抽象类中只包含吊重和方法的定义,而没有方法的实现。 通过接口可以实现不相关类的相同行为,而不需要考虑这些类之间的层次关系。 通过接口可以指明多个类需要实现的方法。 通过接口可以了解对象的交互界面,而不需了解对象所对应的类。 接口是用来实现类间多重继承功能的结构. -在Java中, 出于简化程序结构的考虑,不支持类间的多重继承而只支持单重继承,即一个类至多只能有一个直接父类。 接口的实现功能比多重继承更强 接口把方法的定义和类的层次区分开来,通过它可以在运行时动态地定位所调用的方法;同时,也可以实现“多重继承”,且一个类可以实现多个接口。 正是这些机制使得接口提供了比多重继承更简单,更灵活, 而且更强健的功能。 2、Java中接口的定义 [修饰符] interface 接口名 extends 父接口1,父接口2...{ } 接口就是某个事物对外提供的一些功能的申明 可以利用接口实现多态,同时接口也弥补了Java单一继承的弱点 使用interface关键字定义接口 一般使用接口声明方法或常量,接口中的方法只能是声明,不能是具体的实现 创建接口的步骤 // 定义方法的接口 public interface myinterface { } // 定义程序使用的常量的接口 public void add(int x, int y); public void volume(int x,int y, int z); 零到多个常量定义... 零到多个抽象方法定义... 零到多个内部类、接口、枚定义... 零到多个默认方法或类方法定义...//Only in java8 public interface myconstants { public static final double price = 1450.00; public static final int counter = 5; } 接口里不能包含普通方法,接口里的所有方法都是抽象方法,接口是从多个相似类中抽象出来的规范。Java8对接口进行了改进,允许在接口中定义默认方法,默认方法可以提供方法实现。 对比类定义,接口定义少了初始化块和构造器,且接口成员变量只能是静态常量(成员变量总是是public static final来修饰,可以省略),接口方法只能是抽象方法、类方法或默认方法(方法总是用public abstract来修饰,可以省略)。接口里的变量都必须指定初始值,接口里普通方法不能有方法体实现,类方法和默认方法必须有方法体实现。一个Java文件最多只能有一个public修饰的接口,如果定义了一个public接口,需与主文件名一致。 3、接口的实现 接口在定义后,就可以在类中实现该接口。在类中实现接口可以使用关键字implements,基本语法格式如下所示: [修饰符] class <类名> [extends 父类名] [implements 接口列表] { } 在类中实现接口时,方法名、返回值类型、参数的个数及类型必须与接口中的完全一致,并且必须实现接口中的所有方法。 4、下面是一个简单的接口定义和继承的例子 interface interfaceA{ int a=5; void testA(); } interface interfaceB extends interfaceA{ //interfaceB继承了interfaceA } public class ExampleOfPolymorphism { } 程序中,一个子类同时实现了两个接口,这样在子类中就必须同时覆写完两个接口中的全部抽象方法 三、案例解析 案例1 子承父业 1.案例描述 编写动物世界的继承关系代码。动物(Animal)包括山羊(Goat)和狼(Wolf),它们吃(eat)的行为不同,山羊吃草,狼吃肉,但走路(walk)的行为是一致的。通过继承实现以上需求,并编写AnimalTest测试类进行测试。 山羊类和狼类具有共同的吃、走路行为,应该抽象出来,放在动物类中。但山羊吃草,狼吃肉,具体吃的行为各部相同,所以在山羊类和狼类中要重写吃行为。 2.参考步骤: (1) 打开Eclipse,在study项目中创建包com.task09,再public static void main(String[] args) { } System.out.println(interfaceB.a); System.out.println(interfaceB.b); int b=6; void testB(); 确定类名Animal,得到父类的框架。 (2) 在父类的框架中,定义山羊和狼都具有的行为:吃eat和走路walk。在eat方法中实现吃草的动作,在walk方法中实现走路的动作。 (3) 在包com.task09中再创建一个类Goat,让Goat继承Animal类,此时继承了Animal类的吃和走路两个方法。 (4) 在包com.task09中再创建一个类Wolf,让Wolf继承Animal类,此时继承了Animal类的吃和走路两个方法。但是狼吃肉而不是吃草,所以此时在Wolf类中需要重写eat方法。 (5) 编写测试类AnimalTest,在测试类里面分别声明并创建一个Goat类的对象和一个Wolf类的对象,然后分别调用每个对象的吃和走路的方法。 (6) 运行程序。 案例2 重写equals()方法 1.案例描述 定义一个学生类Student,包含 1、属性:学号、姓名 2、方法: 类Student带参数的构造方法:在构造方法中通过形参完成对成员变量的赋值操作。 重写父类(Object)的equals()方法:根据学号判断对象是否相同,若学号相同,则结果为true,否则结果为false。 编写一个测试类StudentTest,创建2个对象,判断他们是否相同。 2.案例分析 Object类中的equals()方法比较的是两个引用是否指向同一个对象,若是,则返回true,否则,返回 false;而本题要求根据学生的学号判断是否相同,若学号相同,则为true,否则为false;因此,需要重写父类的equals()方法,equals()方法的头部为:public boolean equals(Object obj),此处不能改变,实现方法体的核心算法应为: (1) 判断当前引用和obj引用是否相等,即是否指向同一个对象,若是,则返回true,否则,继续进行下一步判断。 (2) 判断obj引用的对象是否属于Student类,若不是,则直接退出比较,返回false,若是,则进行下一步操作。 将obj引用向下转型为Student类型的引用(st),然后比较当前引用所指向对象的学号是否和st引用所指向对象的学号是否相同,若是,则返回true,否则,返回false。 五、总结 继承和多态是面向对象的主要特征 继承可提高代码的重用性,使用extends关键字来实现。除了构造方法之外,父类的所有方法和属性都被子类的对象继承 多态性是不同的实例对象以不同的方式对相同的信息作出不同的表现 访问修饰符用于确定访问类成员的方式 接口是Java编程一项重要的技术,同过它可以实现多态,同时它也弥补了Java单一继承的不足 使用extends关键字可以继承类,使用imp lement关键字可以实现接口。 (第 页)

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo6.com 版权所有 湘ICP备2023023988号-11

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务