附件二广东科学技术职业学院教案2014~2015学年第二学期学院(系、部)计算机工程技术学院课程名称Java面向对象程序设计授课班级14软件3班主讲教师林萍职称讲师使用教材JAVA高级编程项目化教程广东科学技术职业学院教务处制二○○六年九月教案(首页)课程名称Java面向对象程序设计课程编号总计:54学时学分讲课:27学时实验:27学时上机:学时类别必修课(√)选修课()理论课()实验课()任课教师林萍职称讲师授课对象专业班级:14软件3班共1个班教材参考资料教材:Java高级项目化教程主编:林萍清华大学出版社参考教材:1.JAVA基础与案例开发详解主编:张孝祥清华大学出版社2.Java程序设计朱喜福等主编人民邮电出版社3.Java学习笔记良葛格编著清华大学出版社4.Java程序设计古凌岚等编著清华大学出版社教学方法教学手段教学方法:课堂讲授,启发式教学,课堂讨论,案例教学,研究性教学,提问式教学,课程论文,课程设计,学生讲授,师生互动。教学手段:多媒体教学,网络教学。考核方式闭卷考试,课程设计,考证。学生创新精神与实践能力的培养方法课上前几分钟讲解上一次实验的优点缺点,鼓励大家多动手。下课前几分钟讲解下次实验内容,让同学们有充分的时间去考虑解决问题的方法,同一个题目往往要求多种解法,让大家自己比较多种解法的有缺点,从而提高大家的逻辑思维能力、动手能力和自己解决问题的能力。其它要求严格考勤,注重学生课堂表现及课堂参与情况,课下作业,课下实验,充分发挥大家解决问题的能力。1、Java面向对象程序设计课程教案授课时间第1、2周第1、2、3节课次2授课方式(请打√)理论课√讨论课□实验课□习题课□其他□课时安排6授课题目(教学章、节或主题):单元知识1JAVA面向对象语言基础对象、方法、数组、代码规范教学目的、要求(分掌握、熟悉、了解三个层次):理解类和对象的概念理解方法理解数组教学重点及难点:理解类和对象的概念理解方法理解数组1.教学基本内容方法手段1.如何把“学生”用java语言描述出来并输出学生信息?2.类设计好之后,我们如何使用它?程序从哪里开始执行?3.学生对象属性赋值后,请输出学生信息。4.从键盘上录入学生三门课成绩,计算平均成绩并输出。5.循环随机产生10位同学的成绩,进行升序排列后输出结果。6.为了程序阅读和交流方便,适当的注释是必不可少的,因此我们需要给代码添加注释。另外,很多企业反馈:刚毕业的学生写的代码没法看,命名不规范,代码无缩进等,所以一般在做项目之前,都会有个代码规范要求,这就是java代码规范。提问式多媒体教学作业和思考题:猜数小游戏用*打印图案:输入输出学生信按照成绩降序排列并输出课后小结:java语言面向对象编程的思路认为程序都是对象的组合,因此要克服面向过程编程的思路,直接按照对象和类的思想去组织程序,面向对象所具有的封装性、继承性、多态性等特点使其具有强大的生命力。作为面向对象编程人员来说,大体可以分为两种:类创建者和应用程序员,应用程序员是类的使用者。所以对程序的可读性和API帮助文档就有要求,java语言本身有一套约定成俗的编程规范,同时程序员首先要学会阅读系统API帮助文档,还要学会生成自己编写的程序的API帮助文档。2、Java面向对象程序设计课程教案授课时间第3周第1、2、3节课次1授课方式(请打√)理论课√讨论课□实验课□习题课□其他□课时安排3授课题目(教学章、节或主题):单元知识2抽象和封装面向对象思路、构造函数、封装教学目的、要求(分掌握、熟悉、了解三个层次):学习面向对象设计的过程,从现实世界中抽象出类实现对现实世界的模拟对抽象出的类进行优化,通过封装隐藏内部信息1.教学重点及难点:1.从现实世界中抽象出类教学基本内容方法手段1.根据控制台提示,输入姓名。2.根据控制台提示,选择角色类型,有两种选择:教师和学生。3.如果类型选择教师,要选择教师教课的方向,有两种选择:“java方向”或者“.net方向”。4.如果类型选择学生,要选择学生所在的年级:“大一”、“大二”或者“大三”。5.在控制台打印出角色信息,包括姓名、年龄、性别、教课方向或者所在年级。提问式多媒体教学作业和思考题:画出代码2-8的类图,并根据Teacher类的类图,设计出Student类属性被封装后的类图。实现角色信息录入和打印。给Student类增加Student(name)构造方法对Student类的所有属性进行封装,并设定名字不能多于4个字符,年级不能是“大一、大二、大三”以外的数据。课后小结:现实世界是“面向对象”的,面向对象就是采用“现实模拟”的方法设计和开发程序。面向对象技术是目前计算机软件开发中最流行的技术。面向对象设计的过程就是抽象的过程。类是对某一类事物的描述,是抽象的、概念上的定义。对象是实际存在的该事物的个体,是具体的,现实的。如果同一个类中包含了两个或两个以上方法,他们的方法名相同,方法参数个数或参数类型不同,则称该方法被重载了,这个过程称为方法重载。构造方法用于创建类的对象。构造方法的作用主要就是在创建对象时执行一些初始化操作。可以通过构造方法重载来实现多种初始化行为。封装就是将类的成员属性声明为私有的,同时提供公有的方法实现对该成员属性的存取操作。3、Java面向对象程序设计课程教案授课时间第4周第1、2、3节课次1授课方式(请打√)理论课√讨论课□实验课□习题课□其他□课时安排3授课题目(教学章、节或主题):单元知识3继承优化设计、重写父类、父类声明和子类实例化教学目的、要求(分掌握、熟悉、了解三个层次):学习使用继承方法重写的目的父类的声明和子类的实例化教学重点及难点:1.方法重写教学基本内容方法手段1.任务一使用继承优化设计2.任务二子类重写父类方法3.任务三父类的声明和子类的实例化提问式多媒体教学作业和思考题:创建角色对象并输出信息方法的覆盖this和super的使用父类声明和子类实例化课后小结:继承是Java中实现代码重用的重要手段之一。Java中只支持单继承,即一个类只能有一个直接父类。java.lang.Object类是所有Java类的祖先。在子类中可以根据实际需求对从父类继承的方法进行重新编写,称为方法的重写或覆盖。子类中重写的方法和父类中被重写方法必须具有相同的方法名、参数列表、返回值类型必须和被重写方法的返回值类型相同或者是其子类。如果子类的构造方法中没有通过super显式调用父类的有参构造方法,也没有通过this显式调用自身的其他构造方法,则系统会默认先调用父类的无参构造方法。声明部分为父类,赋值部分为子类的对象,在调用重写的方法时,会调用子类的方法,属性被覆盖则正好相反。4、Java面向对象程序设计课程教案授课时间第5、6周第1、2、3节课次2授课方式(请打√)理论课√讨论课□实验课□习题课□其他□课时安排6授课题目(教学章、节或主题):单元知识4多态多态概念、抽象类、子类和父类的转换教学目的、要求(分掌握、熟悉、了解三个层次):学习使用多态多态的使用场景子类父类的相互转换教学重点及难点:1.学习使用多态2.多态的使用场景3.子类父类的相互转换教学基本内容方法手段任务一什么是多态为了进一步提高教学质量和学生学习的积极性,学校增加了一个教学督导组,目的是监督教师的教学情况以及学生的学习情况。督导监督教师教学主要从以下几个方面监督:1、教师上课是否上课表达准确。2、讲解思路清晰。监督学生上课情况:1、不迟到、早退、旷课。2、课堂认真学习。任务二抽象类代码4-6的Person类中有一个函数learn()没有任何实现,也没有实现它的意义,那么能否在去掉Person类中的learn函数呢?如果不能,是否可以只是声明函数,而不提供实现呢?任务三父类和子类的相互转换在上一单元学习中,我们知道,如果我们这样去声明和赋值一个对象:Personp=newTeacher();那么对象p的属性和函数也仅仅只包含在Person类中声明的属性和函数,要想使用Teacher类中独有的函数,比如getMajorField()函数是不可以的。是否有办法使用在子类中独有的方法呢?提问式多媒体教学作业和思考题:1.计算交通工具运行1000公里需要的时间。2.程序功能扩展3.综合运用面向对象知识4.抽象类课后小结:通过多态可以减少类中代码量,可以提高代码的可扩展性和可维护性。继承是多态的基础,没有继承就没有多态。把子类转换为父类,称为向上转型,自动进行类型转换。把父类转换为子类,称为向下转型,必须进行强制类型转换。向上转型后通过父类引用变量调用的方法是子类覆盖或继承父类的方法,通过父类引用变量无法调用子类特有的方法。向下转型后可以访问子类特有的方法。必须转换为父类指向的真实子类类型,否则将出现类型转换异常ClassCastException。抽象类不能实例化,抽象类中可以没有、可以有一个或多个抽象方法。子类必须重写所有的抽象方法才能实例化,否则子类还是一个抽象类。instanceof运算符通常和强制类型转换结合使用,首先通过instanceof进行类型判断,然后进行相应的强制类型转换。5、Java面向对象程序设计课程教案授课时间第7周第1、2、3节课次1授课方式(请打√)理论课√讨论课□实验课□习题课□其他□课时安排3授课题目(教学章、节或主题):单元知识5接口、常用修饰符和包接口定义、修饰符、包教学目的、要求(分掌握、熟悉、了解三个层次):学习使用接口理解面向接口编程理解final和static修饰符的使用了解其他限定符教学重点及难点:理解面向接口编程理解final和static修饰符的使用教学基本内容方法手段任务一接口的定义与使用在生活中,我们比较常见的接口就是usb接口了,现在大部分的鼠标、键盘、U盘等都统一使用usb接口,那么usb接口是如何做到无论插入什么设备都可以直接使用的呢?任务二final和static修饰符Java中如何表示常量,如圆周率pi这样基本保持不变的值。任务三public、protected、friendly和private修饰符在java中,还常见四种修饰符:public、protected、friendly(默认省略)和private,它们修饰类的方法和属性时有什么不同呢?任务4包在java中,如果类名相同该怎么处理?提问式多媒体教学作业和思考题:1.使用接口实现打印机2.static和final的使用3.public、protected、friendly(默认省略)和private的使用课后小结:接口是java中实现多继承的重要手段,接口可以使java的代码更规范,从而实现“对扩展开放,对修改关闭”的开发原则。Java又叫面向接口编程。static和final可以一起使用来定义一个常量,也可以分开使用。static可以修饰属性和方法,final可以修饰类、属性和方法。Java中的其他限定符是为属性的访问范围设定的,常用的是public和private。6、Java面向对象程序设计课程教案授课时间第8周第1、2、3节课次1授课方式(请打√)理论课√讨论课□实验课□习题课□其他□课时安排3授课题目(教学章、节或主题):单元知识6异常产生、处理、原理、自定义异常教学目的、要求:正确地使用捕获异常和声明抛弃异常的两种异常处理的方法。理解Java中两种异常处理机制,抛弃异常和声明抛弃异常的区别与联系。了解自定义异常。教学重点及难点:正确地使用捕获异常和声明抛弃异常的两种异常处理的方法。理解Java中两种异常处理机制,抛弃异常和声明抛弃异常的区别与联系。教学基本内容方法手段任务一异常的产生任务二异常的处理任务三自定义异常提问式多媒体教学作业和思考题:根据编号输出课程名称自定义异常使用throw抛出异常课后小结:异常处理是java语言中的一个独特之处,主要使用捕获异常和声明抛弃异常两种方法来处理程序中可能出现异常的语句块,其中捕获异常是一种积极处理异常的方法,而声明抛弃异常是一种消极处理异常的方法。Try块可以配一个或者多个catch块,也可以只配一个f