1、面向对象与 Java 程序设计(第 3 版)课程教案任课教师:朱福喜 开课对象:软件工程学时/学分:64/4课堂教学/课内实验: 42/22 使用教材:朱福喜,面向对象与 Java 程序设计第 2 版,清华大学出版社,2015.7 主要参考书:1. 叶核亚,Java 程序设计实用教程(第 3 版),电子工业出版社,20102. 耿祥义、张跃平,Java 大学实用教程(第 2 版),电子工业出版社, 2008 年3. 孙卫琴,Java 面向对象编程,电子工业出版社,20064. 张白一,面向对象程序设计Java,西安电子科技大学出版社, 20085. 陈国君,Java 程序设计基础(第 4 版)
2、,清华大学出版社,2014.86. (美)刘易斯、洛夫特斯著,罗省贤,李军译,Java 程序设计教程(第六版),电子工业出版社,2009.17. Cay S. Horstmann / Gary Cornell ,Core Java, Prentice Hall PTR,20048. 埃克尔,陈昊鹏译,Java编程思想,机械工业出版社,2007 课程总体目标本课程是软件工程专业开设的学科基础课。本课程的教学任务是通过 Java 程序设计的课堂讲授、课内实验,课外自主试验等教学环节,培养学生程序设计使用 Java 语言进行程序设计的基本能力,并且养成学生良好的编程习惯和规范的编程风格。使学生掌握较
3、扎实的 Java 语言基础,理解面向对象程序设计的思想,为 Java 后续课程的学习打下坚实的基础。课程的主要内容如下: 1、绪论2、Java 程序设计基础3、Java 面向对象程序设计4、数组、字符串、向量和哈希表5、泛型、枚举与 for 语句的简化写法6、Java 异常处理与递归7、文件与数据流8、Java 图形用户界面程序设计9、多线程程序设计10、网络程序设计第 1 章 绪论一、教学目的和要求了解 Java 语言的发展历史,Java 语言的特点,学会安装配置 Java 开发环境,能够编译和运行 Java 程序。二、讲授的内容提要和重点、难点及其解决方法,学时分配1、教学内容Java 语
4、言的发展历史Java 语言的特点Java 开发环境的安装与配置Java 程序开发过程以及命令行状态下编译与运行过程介绍2、教学重点Java 语言的特点,开发环境配置,编译运行方法3、教学难点理解Java 程序为什么能够一次编译到处运行;为什么要配置Path 环境变量; 编译与运行的注意事项。4、解决办法原理讲解,操作演示5、学时分配发展历史:0.5 课时Java 语言的特点:0.5 课时Java 开发环境的安装与配置:0.5 课时Java 程序开发过程以及命令行状态下编译与运行过程介绍:0.5 课时三、教学过程(教学方法、实施步骤)使用 PPT 讲解,运行环境配置,编译运行 Java 程序则现
5、场操作演示。四、课外学习要求和作业要求课外作业:要求下载JDK,自行安装配置并编译运行HelloWorld.java 程序第 2 章Java 程序设计基础一、教学目的和要求了解 Java 中数据的类型,表示方法,变量的声明,掌握使用标识符命名 Java 中各种成分的规定和规范;正确掌握表达式的书写方法;能够使用各种控制结构实现程序的逻辑;掌握结构化程序设计的思想和算法描述工具的使用。二、讲授的内容提要和重点、难点及其解决方法,学时分配 1、教学内容标识符和关键字基本数据类型 常量和变量数据类型转换运算符:算术运算符、关系运算符、布尔逻辑运算符、位运算符、赋值类运算符、条件运算符等表达式程序流程
6、控制语句:if 和 switch 语句;for、while、dowhile 循环语句; break、Continue 和 return 语句结构化程序设计2、教学重点基本数据类型和类型转换,常量和变量,运算符与表达式,程序流程控制语句。3、教学难点数据类型转换;前缀自增、自减运算符与后缀自增、自减运算符的区别;程序流程控制语句。分支语句的嵌套;循环语句的嵌套;标号的概念与使用。4、解决办法原理讲解,操作演示5、学时分配标识符和关键字,基本数据类型,常量和变量:2 学时数据类型转换,运算符,表达式:1 学时程序流程控制语句,break、Continue 和 return 语句:2 学时结构化程序
7、设计:1 学时三、教学过程(教学方法、实施步骤)使用 PPT 讲解,对每一个编程知识点编写 Java 程序进行运行演示。四、课外学习要求和作业要求课外作业:要求复习课堂教学内容,对主要知识点布置作业,要求编写程序并条试运行。要求学会使用算法描述工具表示和设计程序的算法。第 3 章面向对象程序设计一、教学目的和要求了解面向对象程序设计基本思想,掌握类的设计方法、实例对象的创建与使用。了解变量作用域范围与参数传递方式。了解并能运用 Java 中面向对象的封装性、继承性、多态性;掌握访问权限的控制方法,修饰词 abstract、static 和 final 的使用;掌握包、抽象类、接口、内部类的概念
8、和使用方法。二、讲授的内容提要和重点、难点及其解决方法,学时分配 1、教学内容类和对象的基本概念。面向对象程序设计基本思想。类的设计、构造方法、类的成员变量和成员方法。实例对象的创建与使用。变量作用域范围与参数传递方式。继承性。多态性:静态多态性和动态多态性。封装性和访问权限控制。修饰词 abstract、static 和 final。包的概念和使用抽象类和接口。内部类。2、教学重点类的定义,对象的创建,构造方法的定义与使用,方法的重载与覆盖,类的继承,包,抽象类和接口。3、教学难点类与对象的概念、创建和使用;方法重载的规则;类的继承与运行时多态, 类继承时对构造方法的处理问题,访问控制权限的
9、使用;方法覆盖的规则;抽象类的应用,接口的应用;抽象类与接口的异同。4、解决办法原理讲解,操作演示5、学时分配类和对象的基本概念,面向对象程序设计基本思想:2 学时类的设计、构造方法、类的成员变量和成员方法,实例对象的创建与使用, 变量作用域范围与参数传递方式:2 学时继承性,方法覆盖,多态性:静态多态性和动态多态性:2 学时封装性和访问权限控制,修饰词 abstract、static 和 final,包的概念和使用:2 学时抽象类和接口,内部类:2 学时三、教学过程(教学方法、实施步骤)使用 PPT 讲解,对每一个编程知识点编写 Java 程序进行运行演示。四、课外学习要求和作业要求课外作业
10、:要求复习课堂教学内容,对主要知识点布置作业,要求编写程序并条试运行。安排 4 个学时的课内上机实验。第 4 章数组、字符串、向量与哈希表一、教学目的和要求了解一维数据和多维数组的声明与使用,掌握遍历数组的方法,了解并能够使用字符串 String 的常用方法,掌握 StringBuffer 的用法,了解并掌握向量Vector,哈希表 Hashtable、HashMap 和 WeakHashMap 的用法。二、讲授的内容提要和重点、难点及其解决方法,学时分配 1、教学内容数组:一维数据和多维数组。字符串:String 和 StringBuffer。向量:Vector。哈希表:Hashtable、
11、HashMap 和 WeakHashMap。2、教学重点一维数组的使用,String 和 StringBuffer 的构造方法和常见方法的使用, Vector 类的使用,哈希表类的创建和使用。3、教学难点多维数组的声明和使用,数组的初始化方法,String 和 StringBuffer 的使用方法的区别,哈希表类的使用。4、解决办法原理讲解,操作演示5、学时分配数组:一维数据和多维数组:1.5 学时字符串:String 和 StringBuffer:1 学时向量:Vector,哈希表:1.5 学时三、教学过程(教学方法、实施步骤)使用 PPT 讲解,对每一个编程知识点编写 Java 程序进行运
12、行演示。四、课外学习要求和作业要求课外作业:要求复习课堂教学内容,对主要知识点布置作业,要求编写程序并条试运行。要求作业必须进行上机调试。第 5 章异常处理一、教学目的和要求了解异常的概念,异常类的层次结构;掌握异常的抛出、捕获和处理方法; 能够自定义异常类并且使用自定义异常类。二、讲授的内容提要和重点、难点及其解决方法,学时分配1、教学内容异常的概念。异常类的层次结构。异常的抛出、捕获和处理。自定义异常类2、教学重点异常的基本概念,异常的抛出捕获和处理,自定义异常类。3、教学难点异常的处理机制;Try-catch-finallly 异常处理结构的执行流程特点;自定义异常类。4、解决办法原理讲
13、解,操作演示5、学时分配异常的概念,异常类的层次结构:0.5 学时异常的抛出、捕获和处理:1 学时自定义异常类:0.5 学时三、教学过程(教学方法、实施步骤)使用 PPT 讲解,对每一个编程知识点编写 Java 程序进行运行演示。四、课外学习要求和作业要求课外作业:要求复习课堂教学内容,对主要知识点布置作业,要求编写程序并条试运行。安排一次课内上机实验。第 6 章文件与数据流一、教学目的和要求了解输入流与输出流的基本概念,掌握常见输入和输出流类的使用,掌握文件和随机存取文件的操作,了解读写器的使用方法,掌握对象序列化的概念。能够编写从键盘输入数据以及对磁盘文件进行读写的程序二、讲授的内容提要和
14、重点、难点及其解决方法,学时分配 1、教学内容输入流与输出流的基本概念。常见输入和输出流类:InputStream 和 OutputStream,DataInputStream 和DataOutputStream,FileInputStream 和 FileOutputStream,PrintStream, 带缓存的输入流和输出流。文件和随机存取文件。读写器:Reader 和 Writer,FileReader 和 FileWriter,带缓存的读写器, PrintWriter。对象序列化。2、教学重点输入输出流的基本概念,文件输入流和文件输出流,文件与目录管理,随机存取文件。3、教学难点字节
15、流与字符流的选用,节点流与过滤流的配合使用,随机读写文件,对象序列化。4、解决办法原理讲解,操作演示5、学时分配输入流与输出流的基本概念,常见输入和输出流类的使用,过滤流的使用: 2 学时文件和随机存取文件,读写器:Reader 和Writer,FileReader 和FileWriter,带缓存的读写器,PrintWriter,对象序列化:2 学时三、教学过程(教学方法、实施步骤)使用 PPT 讲解,对每一个编程知识点编写 Java 程序进行运行演示。四、课外学习要求和作业要求课外作业:要求复习课堂教学内容,对主要知识点布置作业,要求编写程序并条试运行。安排一次课内上机实验。第 7 章图形用
16、户界面程序设计一、教学目的和要求了解基本组件和容器组件,掌握主要布局管理器的概念和使用方法,掌握事件处理机制及其实现方法,了解Swing 的特点和类的层次结构,Swing 常见组件和容器;掌握键盘和鼠标事件处理方法,了解高级图形用户界面:菜单、树、表格和多文档界面的编程方法;掌握 Java 的图形程序设计。二、讲授的内容提要和重点、难点及其解决方法,学时分配 1、教学内容AWT 功能和类的层次结构。(选讲) AWT 的基本组件和容器组件。(选讲) 布局管理器。事件处理机制。Swing 的特点和类的层次结构。Swing 常见组件和容器。键盘和鼠标事件处理。高级图形用户界面:菜单、树、表格和多文档
17、界面。小应用程序:Applet 的基本工作原理, Applet 生命周期, Applet 类中的重要方法, Applet 编写方法和 Applet 与浏览器的参数传递。(选讲)Java 的图形程序设计。2、教学重点常用的 GUI 组件和容器,布局管理器,事件处理机制,菜单和表格。3、教学难点:布局管理器的灵活应用,事件处理机制,表格处理。4、解决办法原理讲解,操作演示5、学时分配常用图形控件,基本组件和容器组件,布局管理器:2 学时事件处理机制:2 学时Swing 的特点和类的层次结构,Swing 常见组件和容器:2 学时键盘和鼠标事件处理:2 学时高级图形用户界面:菜单、树、表格和多文档界面
18、:2 学时小应用程序:Applet 的基本工作原理, Applet 生命周期, Applet 类中的重要方法, Applet 编写方法和 Applet 与浏览器的参数传递。:2 学时Java 的图形程序设计:2 学时三、教学过程(教学方法、实施步骤)使用 PPT 讲解,对每一个编程知识点编写 Java 程序进行运行演示。四、课外学习要求和作业要求课外作业:要求复习课堂教学内容,对主要知识点布置作业,要求编写程序并条试运行。安排 4 学时课内上机实验。第 8 章多线程程序设计一、教学目的和要求了解基本组件和容器组件,掌握主要布局管理器的概念和使用方法,掌握事件处理机制及其实现方法,了解Swing
19、 的特点和类的层次结构,Swing 常见组件和容器;掌握键盘和鼠标事件处理方法,了解高级图形用户界面:菜单、树、表格和多文档界面的编程方法;掌握 Java 的图形程序设计。二、讲授的内容提要和重点、难点及其解决方法,学时分配 1、教学内容程序、进程、线程的概念。线程的创建。线程的状态与线程的控制。线程优先级与线程调度。多线程的同步问题和处理方法。2、教学重点线程的创建、线程的控制与调度,多线程同步问题。3、教学难点两种创建线程的方法的区别,启动线程的 start()方法与直接调用 run()方法的区别,多线程同步问题和处理方法。4、解决办法原理讲解,操作演示5、学时分配程序、进程、线程的概念,
20、线程的创建,线程的状态与线程的控制:2 学时线程优先级与线程调度,多线程的同步问题和处理方法:2 学时三、教学过程(教学方法、实施步骤)使用 PPT 讲解,对每一个编程知识点编写 Java 程序进行运行演示。四、课外学习要求和作业要求课外作业:要求复习课堂教学内容,对主要知识点布置作业,要求编写程序并条试运行。安排 2 学时课内上机实验。第 9 章网络程序设计一、教学目的和要求了解基本组件和容器组件,掌握主要布局管理器的概念和使用方法,掌握事件处理机制及其实现方法,了解Swing 的特点和类的层次结构,Swing 常见组件和容器;掌握键盘和鼠标事件处理方法,了解高级图形用户界面:菜单、树、表格
21、和多文档界面的编程方法;掌握 Java 的图形程序设计。二、讲授的内容提要和重点、难点及其解决方法,学时分配 1、教学内容基于 URL 获取网络资源基于 TCP 的网络程序设计基于 UDP 的网络程序设计2、教学重点基于 URL 获取网络资源,基于 TCP 的网络程序设计。3、教学难点支持多客户端/服务器端程序的设计与开发。4、解决办法原理讲解,操作演示5、学时分配基于 URL 获取网络资源:1 学时基于 TCP 的网络程序设计:1.5 学时基于 UDP 的网络程序设计:1.5 学时三、教学过程(教学方法、实施步骤)使用 PPT 讲解,对每一个编程知识点编写 Java 程序进行运行演示。四、课外学习要求和作业要求课外作业:要求复习课堂教学内容,对主要知识点布置作业,要求编写程序并条试运行。