java面向对象程序设计教案资料.docx
《java面向对象程序设计教案资料.docx》由会员分享,可在线阅读,更多相关《java面向对象程序设计教案资料.docx(25页珍藏版)》请在冰豆网上搜索。
java面向对象程序设计教案资料
附件二
广东科学技术职业学院
教案
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块,也可以只配一个finally块。
配多个catch块时要注意顺序。
自定义异常给程序提供了一个统一的异常处理接口,自定义异常必须继承Exception类。
7、Java面向对象程序设计课程教案
授课时间
第9、10周第1、2、3节
课次
2
授课方式
(请打√)
理论课√讨论课□实验课□习题课□其他□
课时
安排
6
授课题目(教学章、节或主题):
单元知识7I/O读取、存储数据简单文件读写、原理和结构、常用流、随机存储存取文件流
上机目的、要求:
理解字节流和字符流的区别和联系
理解常用对象流的使用方法和使用场合
了解其他流
上机重点及难点:
理解字节流和字符流的区别和联系
理解常用对象流的使用方法和使用场合
教学基本内容
方法
手段
任务一简单的文件读写
任务二I/O原理和结构
任务三常用流
任务四随机存储存取流和File类
提问式多媒体教学
作业和思考题:
通过输入流读取班级名称
根据选择的班级,找到相应的文件输出班级学生信息
使用缓冲流和对象流输入
使用缓冲流和对象流输出
课后小结:
Java中的输入输出处理是通过使用流技术,用统一的接口表示而实现的。
输入输出流中,最常见的是对文件的处理。
例如:
java.io.FileInputStream,java.io.FileOutputStream,java.io.RandomAccessFile和java.io.File。
输入输出流根据处理的内容,分为字符流和字节流两种,其中字节流是以byte为基本处理单位的流;而字符流是以16位的Unicode码为处理单位的流。
8、Java面向对象程序设计课程教案
授课时间
第11、13周第1、2、3节
课次
2
授课方式
(请打√)
理论课√讨论课□实验课□习题课□其他□
课时
安排
6
授课题目(教学章、节或主题):
单元知识8JAVA集合框架使用LIST集合随机选取学生、集合框架的结构、常用的其他集合类、JAVA泛型
教学目的、要求(分掌握、熟悉、了解三个层次):
理解List集合框架的使用
理解Map框架的使用
了解使用Iterator迭代器遍历集合框架
了解泛型
教学重点及难点:
理解List集合框架的使用
理解Map框架的使用
教学基本内容
方法
手段
任务一使用List集合随机选取学生
任务二集合框架的结构
任务三Iterator迭代器
任务四泛型
提问式多媒体教学
作业和思考题:
通过输入流和List的配合读取班级名称
把选择的班级中学号以“5”结尾的同学信息输出在控制台上
使用Map来查找学生
随机点名
课后小结:
和数组一样,List也把数字下标同对象联系起来,你可以把数组和List想成有序的容器。
List会随元素的增加自动调整容量。
如果要经常做随机访问,那么请用ArrayList,但是如果要在List中间做很多插入和删除的话,就应该用LinkedList了。
LinkedList能提供队列,双向队列和栈的功能。
Map提供的不是对象与数组的关联,而是对象和对象的关联。
HashMap看重的是访问速度,因而它查找的效率很高。
Set只接受不重复的对象。
HashSet提供了最快的查询速度。
迭代器可以快速的遍历集合,迭代器没有forEach简洁,但是某些时候只能采用迭代器。
泛型的使用可以提高代码的安全性和健壮性,建议在集合类中都使用泛型。
9、Java面向对象程序设计课程教案
授课时间
第13、14周第1、2、3节
课次
2
授课方式
(请打√)
理论课√讨论课□实验课□习题课□其他□
课时
安排
6
授课题目(教学章、节或主题):
单元知识9JAVA图形用户界面简单的图形用户界面、布局管理器和常用组件、事件
教学目的、要求(分掌握、熟悉、了解三个层次):
1.理解图形用户界面
2.理解常用组件和容器的使用
3.理解常用事件的使用
教学重点及难点:
1.理解图形用户界面
2.理解常用组件和容器的使用
3.理解常用事件的使用
教学基本内容
方法
手段
任务一简单的图形用户界面
任务二布局和组件
任务三事件
提问式多媒体教学
作业和思考题:
GridLayout、BorderLayout容器嵌套布局一个小型计算器
实现计算器最基本的加、减、乘、除功能
实现点名器
课后小结:
用Swing来生成图形化用户界面时,组件和容器的概念非常重要。
组件是各种各样的类,封装了图形系统的许多最小单位,例如按钮、窗口等等;
容器也是组件,它的最主要的作用是装载其它组件,但是象JPanel这样的容器也经常被当作组件添加到其它容器中,以便完成复杂的界面设计。
布局管理器是java语言与其它编程语言在图形系统方面较为显著的区别,容器中各个组件的位置是由布局管理器来决定的,共有5种布局管理器,每种布局管理器都有自己的放置规律。
事件处理机制能够让图形界面响应用户的操作,主要涉及到事件源、事件、事件处理者等三方,事件源就是图形界面上的组件,事件就是对用户操作的描述,而事件处理者是处理事件的类。
因此,对于Swing中所提供的各个组件,我们都需要了解该组件经常发生的事件以及处理该事件的相应的监听器接口。
10、Java面向对象程序设计课程教案
授课时间
第15、16周第1、2、3节
课次
2
授课方式
(请打√)
理论课√讨论课□实验课□习题课□其他□
课时
安排
6
授课题目(教学章、节或主题):
单元知识10多线程代码交替执行、线程的状态与调度、实现动态点名器
教学目的、要求(分掌握、熟悉、了解三个层次):
理解java中线程的使用,
掌握线程的调度和控制方法,
理解多线程的互斥和同步的实现原理
教学重点及难点:
理解java中线程的使用,
理解多线程的互斥和同步的实现原理
教学基本内容
方法
手段
任务一代码交替执行
任务二什么是多线程
任务三实现动态点名器
提问式多媒体教学
作业和思考题:
完成任务三的动态点名器
存储更改的学生信息
在退出程序前,保存所有学生信息的修改
课后小结:
Java语言内在支持多线程的程序设计。
线程是进程中的一个单个的顺序控制流,多线程是指单个程序内可以同时运行多个线程。
在Java程序中创建多线程的程序有两种方法。
一种是继承Thread类并覆盖其run()方法,另一种是实现Runnable接口并实现其run()方法。
线程从创建、运行到结束总是处于下面五个状态之一:
新建状态、就绪状态、运行状态、阻塞状态及死亡状态。
Java的每个线程都有一个优先级,当有多个线程处于就绪状态时,线程调度程序根据线程的优先级调度线程运行。
结合java面向对象、输入输出、集合框架、图形用户界面和多线程,实现了一个比较实用和完整的点名系统。
2014~2015学年第二学期课程教学实施小结
课程名称Java面向对象程序设计
采用教材Java面向对象程序设计
任课教师林萍实验(实习)指导教师林萍
计划安排
培养计划、教学大纲安排总课时54学时,学分,其中理论27学时,实验(实践、实习)27学时,多媒体27学时。
本学期计划授课54学时,其中理论27学时,实验(实践、实习)27学时,多媒体27学时。
实施情况
实际完成的授课总课时54学时,其中理论27学时,实验(实践、实习)27学时,多媒体27学时。
按实施教学编写的教案数1份,其中理论1份,实验(实习)1份,多媒体课件1件。
考核方式考试,成绩计算方式闭卷考试
教学小结(含本学期参加教改课题、课程建设及获相关教学奖励等情况):
任课教师签名林萍
教研室主任签名
教学院长(系主任)签名
15年3月5日