JAVA面向对象程序设计教案 - 图文(6)

2019-08-31 13:25

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

的处理方式 } ..... } (以下练习都应采用上述构造函数/getXXXX()/display()的编码形式) (2) 【练习题二】 定义一个名为Vehicles(交通工具)的基类,该类中应包含String类型的成员属性brand(商标)和color(颜色),还应包含成员方法run(行驶,在控制台显示“我已经开动了”)和showInfo(显示信息,在控制台显示商标和颜色),并编写构造方法初始化其成员属性。 编写Car(小汽车)类继承于Vehicles类,增加int型成员属性seats(座位),还应增加成员方法showCar(在控制台显示小汽车的信息),并编写构造方法。 编写Truck(卡车)类继承于Vehicles类,增加float型成员属性load(载重),还应增加成员方法showTruck(在控制台显示卡车的信息),并编写构造方法。 在main方法中测试以上各类。 作 业 布 置 课 后 总 结 (1) P192 8、9。 (2) 预习多态的基本概念以及具体实现。 (1) 由于对继承属于面向对象的三大特征之一,所以本章节的速度放得很慢,但是即使这样依然有30%的人对继承的基本概念和实现仍然存在很大的问题。解决办法就是系能能够通过更多的练习来达到对理论的理解。 第25页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

教 案

编号:11

章节 继承 — 多态 (1) 掌握方法覆盖的基本概念机Java实现。 (2) 掌握多态,在Java中实现多态。 (3) 掌握final关键字的用法。 (4) 培养学生的表达能力、项目展示能力。 (5) 培养学生的团队意识。 (6) 培养学生的实际动手能力。 授课方式 讲授+上机 教 学 目 的 教 学 重 点 教 学 难 点 时间 分配 Min 15 10 25 (1) 方法覆盖、多态。 (1) 方法覆盖、多态。 教 学 过 程 一、 作业点评及检查(学生阐述+老师总结) 作业讲解及点评:由1-2个学生讲述上周作业的实现思路以及展示程序实现;过程中由老师补充和总结。 预习检查:在Java程序中,多态性带给我们的好处是什么? 方法覆盖与方法重载有区别吗? 抽2-4个人来回答上述两个问题。然后引入此堂课新内容。 二、 上周回顾(学生阐述+老师总结) (1) 继承是指从一个基类(父类)派生出派生类(子类)的过程; (2) 继承使用关键字extends; (3) 对于类成员,可以使用public、protected、缺省和private这4种访问权限修饰符; (4) 创建子类实例时,必须先执行父类的构造方法,然后再执行子类的构造方法; (5) super关键字有两种主要用途,都与父类有关。 三、 方法覆盖 (1) 在类的继承体系结构中,如果子类中出现了与父类中有同原型的方法,那么认为子类中的方法覆盖了父类中的方法(也称为方法重写); (2) 通过子类的实例调用被覆盖的方法时,将总是调用子类中的方法,而父类中的方法将被隐藏。 (3) 方法覆盖的Java实现。 class ParentClass { //定义父类 public void fun() { System.out.println(\这是父类中的方法。\ } } class ChildClass extends ParentClass {//子类继承于父类 public void fun() { //子类覆盖父类中的方法 第26页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

20 15 30 System.out.println(\这是子类中的方法。\ } } class OverriddenTest { //用于容纳main方法 public static void main(String[] args) { ParentClass parObj = new ParentClass(); parObj.fun(); //父类的实例调用此方法 ChildClass chiObj = new ChildClass(); chiObj.fun(); //子类的实例调用此方法 } } (4) 区分方法覆盖和方法重载 a) 方法覆盖(重写)和方法重载是两个极易混淆的概念,必须严格区分; b) 方法覆盖出现的前提条件之一是必须有继承发生的情况下,而且要求父类和子类中的方法必须同原型; c) 方法重载时,继承并不是必需的,它只要求方法名称相同,而参数列表则必须不同,换言之,各方法的原型其实是不同的。 四、 多态 (1) 简单来说,多态是具有表现多种形态的能力的特征 (2) 属于同一种类型,使用不同的实例而执行不同操作 (3) 静态多态 (4) 动态多态 五、 final关键字 (1) 在Java中,final关键字有最终的,不可修改的含义; (2) final关键字有三种用途,可以分别应用于变量、成员方法和类。 (3) 如果将某个变量修饰为final,那么该变量就成为常量,一般语法: [访问权限] final 数据类型 常量名 = 值; 如: final double PI = 3.14159; PI成为常量,其后任何试图对PI进行赋值的语句都将报错; (4) 常量在声明时必须初始化 六、 代码阅读 第27页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

70 七、 上机实验 定义一个宠物类(Pet),它有两个方法:叫cry(),吃东西eat(),定义宠物的子类狗(Dog),猫(Cat),覆盖父类的cry(),eat()方法,里面写System.out.println(\猫吃了鱼\这样的打印语句,另外狗有自己的方法看门guardEntrance(),猫自己独有的方法捉老鼠huntMice() (1)定义一个Test类,在main中定义两个Pet变量,pet1,pet2,采用引用转型实例化Dog,Cat,分别调用Pet的cry(),eat(); (2)将Pet引强制转换为具体的Dog,Cat,在调Dog的guardEntrance(),Cat的huntMice()(提示:先用instanceof进行类型判断) 第28页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

(3)修改Test类,添加喂养宠物feedPet(Pet pet)的方法,在feedPet中调cry(),eat()方法,实例化Test类,再实例化狗 Dog dog = new Dog(), 猫 Pet cat = new Cat(),Test分别调feedPet()方法分别传参数cat,dog,思考这两种方式的异同,深入理解引入转型和多态 作 业 布 置 课 后 总 结 (1) 预习异常处理,并完成P279 课后作业1、2、3。 (1) 对方法覆盖和多态的理解难度较大,约一半的人都停留在记住概念上面,在实际的运用中存在问题,解决办法就是由老师给出作业的源代码,先个人看,然后小组讨论,最后由小组代表上台来给大家讲解实现的思路。 第29页 共51页


JAVA面向对象程序设计教案 - 图文(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中医病历书写基本规范实施细则

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: