1、教案首页课程名称JAVA程序设计课程类型专业课程使用教材教材名称:Java程序设计 主编:陈占伟 刘旭出版社:武汉大学出版社 出版日期:2014年 4 月学时分配共 学时,其中理论 学时,实践 学时。课程教学目的与要求Java 不依赖平台的特点使得它受到广泛的关注,Java已成为网络时代最重要的编程语言之一。目前,Java语言不仅是一门正在被广泛使用的编程语言,而且已成为软件设计开发者应当掌握的一门基础语言,因为很多新的技术领域都涉及到了Java语言,国内外许多大学已将Java语言列入了本科教学计划,掌握Java已经成为共识。Java程序设计是软件工程专业、计算机科学与技术等相关专业的一门重要
2、的程序设计语言课程。教学目的:通过本课程的学习,要求学生达到:1、理解Java的平台无关、面向对象、多线程等特性。2、掌握Java语言的面向对象的程序设计方法。3、掌握Java中的网络编程、多线程程序设计、GUI设计等编程技巧。4、培养学生应用Java解决和处理实际问题的思维方法与基本能力。课程教学的基本要求1要求掌握的基本知识Java语言的语法知识,Java中的网络编程、多线程程序设计、图形用户界面设计等编程技巧。2要求掌握的基本理论和方法Java语言的面向对象的程序设计方法,使用Java语言完成应用程序的开发。主要参考书目ruce Echkel,Java编程思想(第4版),机械工业出版社,
3、2007耿祥义,Java 2实用教程(第4版),清华大学出版社 2012 备注课程教案(: 1 )授课内容Java语言概述及开发环境搭建课 型理论 实践授课学时4教学方法与手段讲授+演练教学目的与要求使学生了解Java语言的发展历史使学生掌握环境变量的设置、使用及Java程序的运行方式教学重点与难点环境变量的设置与使用Java程序的运行教学过程设计(包括导入语、主要内容、时间安排、提问或举例等)1.Java语言简介 1.1起源于发展 1.2特点:(1)简单性 (2)面向对象 (3)安全性与可靠性 (4)分布式 (5)健壮性 (6)结构中立 (7)多线程 (8)半编译半解释 (9)高性能 (10
4、)动态 (11)与平台无关性 1.3Java语言的应用2.Java运行环境的安装 2.1安装JDK 2.2开发工具简介 2.3环境变量的设置 3.程序开发过程 3.1Application程序 public class hello public static void main(String args) System.out.println(“Hello world!”); 编译:javac hello.java java 运行:java hello 3.2Applet程序 import java.awt.*; import java.applet.*; public class hello
5、extends Applet public void paint(Graphics g) g.drawString(“Hello world!”,20,100); 作业/思考题:搭建JAVA开发环境及运行第一个JAVA程序。教学后记:课程教案(: 2 )授课内容Java语言基础课 型理论 实践授课学时2教学方法与手段讲授+演练教学目的与要求了解Java语言的数据类型,运算符及表达式教学重点与难点数据类型的转换教学过程设计(包括导入语、主要内容、时间安排、提问或举例等)1.Java语言基本元素 1.1标识符 Java语言中用于定义常量、变量、方法及类对象名称的字符串集合。 1.2关键字 关键字是
6、Java编译程序本身所规定使用的专用词,有特定的语法含义。 1.3分隔符 用来使编译器确认代码在何处分隔,有注释符、空白符和普通分隔符3种。 2.数据类型 2.1基本数据类型 boolean(1)、byte(8)、char(16)、short(16)、int(32)、long(64)、float(32)、double(64)2.2直接量与常量 2.3变量 类型 =,=3.运算符与表达式 3.1赋值运算符与表达式 3.2算术运算符与表达式 3.3关系运算符与表达式 3.4逻辑运算符与表达式3.5条件运算符与表达式 3.6位运算符与表达式 3.7运算符的优先级与结合性 单目优于双目优于三目 算术优
7、于关系优于逻辑优于条件优于赋值 除单目、条件与赋值运算符为右结合外,其余运算符均为左结合。作业/思考题: JAVA与C在使用上的区别教学后记:课程教案(: 3 )授课内容Java语言的程序结构及数组课 型理论 实践授课学时4教学方法与手段讲授+演练教学目的与要求了解并掌握Java流程控制教学重点与难点循环结构与跳转语句教学过程设计(包括导入语、主要内容、时间安排、提问或举例等)1.Java程序构成 Java由包的声明、包的引入和类的定义三部分构成。 2.顺序结构 语句按照出现的先后顺序依次执行。 3.选择结构 3.1if语句 if(表达式) 语句块 3.2if-else语句 if(表达式) 语
8、句块1 else 语句块2 3.3if-else if语句 if(表达式1) 语句块1 else if(表达式2) 语句块2 else if(表达式n) 语句块n else 语句块n+1 3.4switch多分支语句 switch(表达式) case 数值1: 语句块1 break; case 数值2: 语句块2 break; case 数值n: 语句块n break; defaul: 语句块n+1 4.循环结构 4.1while循环 while(条件表达式) 语句块(循环体); 循环控制变量增(减)值; 4.2do?while循环 do 语句块(循环体)循环控制变量增(减)值; while(
9、条件表达式); 4.3for循环 for(赋初值;判断条件;循环控制变量增/减) 循环体; 4.4循环嵌套 5.跳转语句 5.1break语句 用途:(1)用于退出switch语句。 (2)强行突出循环,继续执行循环外下一条语句。 (3)退出带有语句标号的语句块。 5.2continue语句 Continue语句只能用于循环结构中,用于结束本次循环,继续下一次循环。 5.3return语句用于使程序从方法中返回到调用处。作业/思考题: 练习跳转语句的使用与嵌套循环。教学后记:课程教案(: 4 )授课内容面向对象的概念与类的定义课 型理论 实践授课学时4教学方法与手段讲授+演练教学目的与要求了解
10、面向对象的概念并掌握类的定义教学重点与难点类的成员变量与成员方法教学过程设计(包括导入语、主要内容、时间安排、提问或举例等)1.面向对象的基本概念 1.1对象 状态和行为的结合体 信息世界中的对象是现实世界中对象的抽象模型,它被定义为相关数据和方法的集合,使用数据和方法描述其在现实世界中的状态和行为,一般通过变量描述其状态,通过方法实现其行为。 1.2类 一个独立的程序单位,有一个类名并包括属性说明和方法说明两个主要部分。 1.3消息 构成消息的三个要素:接受消息的对象、接受消息后进行处理的方法及方法所需要的参数。 1.4面向对象的基本特征 (1)继承性 (2)封装性 (3)多态性 2.类的描
11、述 2.1类的定义 修饰符 class 类名 extends 父类名 implements 接口名 类体 2.2类的构造方法及应用 构造方法特殊性:(1)构造方法名与类名相同。 (2)构造方法不返回任何值,也没有返回类型。 (3)每一个类可以有零个或多个构造方法。 (4)构造方法在创建对象时自动执行,一般不能显式地直接调用。 3.成员变量 3.1成员变量的声明 =,= 3.2成员变量的访问权限 public、protected、默认的、private 3.3static变量 用static关键字声明的成员变量时静态变量,也称为类的成员变量,而非静态变量称为实例变量。 3.4final变量 关键
12、字final修饰的成员变量在程序运行中将不能被改变,及final修饰的成员变量是常量。 4.成员方法 4.1方法的定义 public|protected|privatestaticfinal|abstract nativesynchroniczed 返回值类型 方法名称(类型 参数1,类型 参数2.) 4.2方法调用与参数传递方式 实参传给形参有值传递与地址传递两种方式。 4.3方法的重载 多个方法享有相同的名字 4.4成员方法的修饰(1)final方法 最终方法,该方法不允许被继承。 (2)abstract方法 抽象方法,该方法不能产生类对象。 (3)static方法 静态方法,该方法可通过
13、类名直接调用作业/思考题: 编写一个“管状灯”实例对象,该灯瓦数为32,长度为50;白色灯光,状态为开。教学后记:课程教案(: 5 )授课内容对象的创建与类的继承和多态课 型理论 实践授课学时2教学方法与手段讲授+演练教学目的与要求学会创建和使用类对象,并学会使用类的继承了解多态的概念教学重点与难点类的继承、多态的理解教学过程设计(包括导入语、主要内容、时间安排、提问或举例等)1.对象 1.1对象的创建 类名 对象变量名=new 类名(参数列表) 1.2对象的使用 对象名.成员变量 对象名.成员方法 1.3释放对象 Java有垃圾收集器,可自动扫描对象的动态内存区,把没有引用的对象作为垃圾收起
14、起来并释放 也可以使用System.gc()手动请求Java的垃圾回收。 1.4匿名对象 匿名对象没有对象名,对它的使用是一次性的,使用完马上就变成垃圾。 2.类的继承 2.1继承的概念 继承表示存在于面向对象程序中的两个类之间的一种关系,当一个类自动拥有另一个类的所有属性和行为时,两个类之间具有继承关系。 被继承的泪称为父类/超类/基类,继承了父类的类称为子类。 2.2创建子类 类修饰符 class 子类名 extends 父类名 成员变量定义; 成员方法定义; super关键字代表父类对象,this关键字代表当前类对象,可用super( )来调用父类构造方法。 2.3成员变量的隐藏和成员方
15、法的覆盖 子类重新定义一个与父类哪里继承来的成员变量完全相同的变量,称为成员变量的隐藏。 方法的覆盖是指子类重新定义从父类中继承来的同名方法。2.4类与类之间的数据类型转换 (1)子类父类 自动类型转换 (2)父类子类 强制类型转换 2.5抽象类 抽象方法:abstract 返回类型 方法名( ); 含有抽吸行方法的类为抽象类: abstract class 类名作业/思考题: 完成指导书上的实战题目。教学后记:课程教案(: 6 )授课内容接口、包和异常课 型理论 实践授课学时4教学方法与手段讲授+演练教学目的与要求掌握并学会使用接口、包和异常掌握方法的重写教学重点与难点接口、异常、方法重写教
16、学过程设计(包括导入语、主要内容、时间安排、提问或举例等)1.接口 1.1接口概述 接口是一种完全没有实现的类,在接口中只包含抽象方法和常量定义。 1.2接口的定义 修饰符 interface extends publicstaticfinal =; publicabstract ; 1.3接口的实现 class implements 接口名1,接口名2,1.4接口和抽象类的区别 (1)抽象类中可定义成员变量和成员方法,其中可含有非抽象的成员方法。接口中只能定义常量和没有实现的方法。 (2)一个类只能继承一个抽象类,但一个子类可以实现多个接口。 2.包 2.1Java系统包 java.lang
17、 java.io java.awt javax.swing java.util java.applet 2.2自定义包 ; 2.3类的保外引用 import .; import .*3.异常处理 3.1基本概念 异常是程序运行过程中发生的异常事件,而不是编译时的语法错误。 3.2异常分类3.3异常处理子类 try /被监视代码块 catch( ) /异常类1处理代码块 catch( ) /异常类n处理代码块 finally /try结束前被执行的代码块 3.4throw语句 3.5throws语句 3.6自定义异常类 作业/思考题: 自定义完成接口的定义、实现。教学后记:课程教案(: 7 )授
18、课内容多线程程序设计课 型理论 实践授课学时4教学方法与手段讲授+演练教学目的与要求了解线程概念理解线程的状态学会多线程程序的设计教学重点与难点线程的创建教学过程设计(包括导入语、主要内容、时间安排、提问或举例等)1.线程的概念 1.1程序、进程及多任务 1.2线程 比进程跟小的运行单位,是程序中单个顺序的流控制,一个进程可以被划分成多个线程。 1.3Java对多线程的支持 2.线程的创建 2.1通过继承Thread类创建线程 public Thread( ) public Thread(String name)public Thread(Runnable target) public Thr
19、ead(Runnable target,String name) public Thread(ThreadGroup group,Runnable target) public Thread(ThreadGroup group , String name) public Thread(ThreadGroup group , Runnable target,String name) class 线程的类名 extends Thread pulbilc void run() 程序语句 2.2通过实现Runnable接口创建线程 3.线程的状态与控制 3.1线程的状态 (1)创建状态 (2)可运行状
20、态 (3)运行中状态 (4)阻塞状态 (5)死亡状态 3.2线程状态的控制 (1)sleep( )方法 (2)yield( )方法 (3)join( )方法 (4)wait( )和notify( )/notifyAll( )方法 (5)与中断有关的方法4.线程的优先级和调度 线程的优先级用整数110表示,最低为1,最高为10,默认为5。 public static final int NORM_PRIORITY=5 public static final int MIN_PRIORITY=1 public static final int MAX_PRIORITY=10 5.线程的同步机制与共
21、享资源synchronized 作业/思考题: 用Thread类和Runnable接口实现一个自定义线程教学后记:课程教案(: 8 )授课内容常用集合接口课 型理论 实践授课学时2教学方法与手段讲授+演练教学目的与要求掌握各种字符串的处理方式教学重点与难点掌握集合类(List、Map)的使用。 能够熟练使用Collection接口及其实现类(ArrayList类、LinkedList类、Vector类)。 String与StringBuffer类的使用 教学过程设计(包括导入语、主要内容、时间安排、提问或举例等)1.集合a) 集合是将多个元素组成一个单元的对象; b) 类似于数组,但数组最大的
22、缺点是:长度受到限制(一经创建,就不可再改变),并且只能存放相同数据类型的元素; c) 集合的长度没有限制,可以存放任意多的元素,而且元素的数据类型也可以不同; d) 集合还提供一系列操纵数据的方法,如存储、检索等等。2.字符串基础知识 字符串就是一个或多个文本字符在内存中的连续排列。 创建字符串对象:3.1创建String对象 public String() public String(String value) public String(char value ,int offset,int count) public String(StringBuffer buffer) public
23、String(byte bytes ,Charset charset) 3.2StringBuffer对象的创建 (1)默认构造函数 public StringBuffer( ) (2)设置容量大小 public StringBuffer(int length) (3)初始化字符串 public StringBuffer(String str) 4.使用String类 4.1求字符串长度 可使用String类中的length( )方法。 4.2连接字符串 用“+”运算符连接两个String类型对象。 4.3比较字符串 “=”比较对象引用是否相同。 “equals”比较对象内容是否相同。 4.4
24、搜索和截取字符串 indexOf(String str)indexOf(String str,int index)lastIndexOf(String str) lastIndexOf(String str,int fromIndex) substring(int beginIndex) substring(int beginIndex,int endIndex) 4.5搜索和截取字符 charSt(int index) indexOf(int ch) indexOf(int ch,int fromIndex) 4.6修改字符串 replace(char oldChar,char newCha
25、r)3.7toString()方法及其他String方法 5.使用StringBuffer类 5.1把字符串添加到缓冲区。 5.2把字符串插入到缓冲区。 5.3从缓冲区中获取。 5.4修改缓冲区中字符串。 5.5求缓冲区容量和字符串。作业/思考题: 编写一个程序,建立一个String类型对象,其中包括给定的一段英文,从英文中提取每个单词并按字母顺序将其进行排序,显示排序后的单词列表.教学后记:课程教案(: 9 )授课内容Java输入输出流和文件的读写课 型理论 实践授课学时4教学方法与手段讲授+演练教学目的与要求掌握基本的输入输出流学会使用常见的文件输入输出流教学重点与难点Java的标准输入输
26、出教学过程设计(包括导入语、主要内容、时间安排、提问或举例等)1.流的基本概念 在Java中,流是用类来描述的。 java.io包为数据读取和写入提供了不同的输入和输出流,还包含了许多流过滤器。 2.Java的标准输入输出 为了支持标准输入和输出设备,Java定义了两个流对象:System.in对象和System.out对象。 3.字节流和顺序文件的读写 3.1InputStream类和OutputStream类3.2字节文件流FileInputStream类和FileOutputStream类4.字符流 4.1Reader类和Writer类4.2字符文件流FileReader和FileWri
27、ter类 4.3字符缓冲流BufferedReader和BufferedWriter类5.文件类 5.1文件File类 5.2RandomAccessFile类作业/思考题: 编写一个java类,其构造函数可以接收文件路径,并能够产生该路径下的所有文件的名称排序列表。教学后记:课程教案(: 10 )授课内容数据库编程课 型理论 实践授课学时2教学方法与手段讲授+演练教学目的与要求理解JDBC 及其工作原理掌握使用JDBC进行数据库编程的步骤教学重点与难点理解JDBC工作原理掌握使用JDBC进行数据库编程的方法与步骤教学过程设计(包括导入语、主要内容、时间安排、提问或举例等)1JDBC基础及工作
28、原理介绍2JDBC 数据库编程基础。l 建立数据源l 数据库记录的查询l 数据库记录的插入3管理程序的设计与实现 演示程序,讲解程序要点,并带领学生进行程序设计。创建源文件StudentInfo.java,按下面步骤完成程序。第1步:导入相关包第2步:创建类StudentInfo,完成程序主界面和主框架.第3步:连接数据库第4步:实现浏览实战演练1:完成课本上的实战演练,让程序运行起来。第5步:完成编辑对话框第6步:实现增加、删除和修改功能实战演练2:完成课本上的实战演练,测试增加记录功能。第7步:完成查询对话框第8步:实现查询功能作业/思考题: 教学后记:课程教案(: 11 )授课内容网络编
29、程课 型理论 实践授课学时4教学方法与手段讲授+演练教学目的与要求掌握网络编程基本知识 掌握TCP服务器端与客户端的通信 掌握UDP服务器端与客户端的通信教学重点与难点TCP和UDP的概念TCP和UDP的通讯原理教学过程设计(包括导入语、主要内容、时间安排、提问或举例等)1.网络通讯过程 a) 在网络通讯中,第一次主动发起通讯的程序就是客户端(Client)程序,而在 第一次通讯中等待连接的程序就是服务器端(Server)程序。 b) 一旦通讯建立,则客户端和服务器端完全一样,没有区别2.C/S结构和B/S结构 a) C/S:客户端/服务器端 必须要有专用的客户端才能正常使用,如QQ软件等 b
30、) B/S:浏览器/服务器端 不需要专用的客户端软件就可以正常使用,只需要有一款浏览器即可, 如各种网站、各种网页游戏等.3.TCP与UDP1) TCP协议 a) 传输控制协议,提供可靠无差错的数据传输 2) UDP协议 a) 用户数据报协议,不可靠的数据传输 3) Socket简介 a) Socket(套接字)是网络驱动层提供给应用程序的接口和机制 b) Socket是TCP网络编程的核心,发送接收消息都需要使用Socket4.基础网络类InetAddress a) InetAddress类用于表示计算机IP地址,包含IP地址和域名相关的操作方法 b) 在编程中经常使用InetAddress
31、类的对象构造IP地址。也可以直接使用字符 串来代表IP地址。 c) 主要方法 getByName(String host) 通过主机名或IP地址得到 一个InetAddress对象getHostName() 获取IP地址对应的主机名getHostAddress() 返回IP地址字符串5.TCP网络编程步骤a) 服务器程序创建一个ServerSocket,然后再用accept方法等待客户来连接; b) 客户端程序创建一个Socket并请求与服务器建立连接; c) 服务器接收客户的连接请求,并创建一个新的Socket与该客户建立虚拟连接; d) 刚才建立了连接的两个Socket在一个线程上对话;
32、e) 服务器开始等待新的连接请求。6.Socket类 a) TCP协议网络程序中,需提供服务器端程序和客户端程序 b) 服务器端调用ServerSocket类的accept()方法监听客户端的请求 c) 连接一旦建立,就可以进行数据传输。此功能由JAVA IO实现,只需要从连接 中获得输入流和输出流即可:将需要发送的数据写入连接对象的输出流中,在 发送完成后从输入流中读取数据即可。作业/思考题: 编写一个Socket案例,需要实现服务端和客户端。教学后记:课程教案(: 12 )授课内容GUI课 型理论 实践授课学时4教学方法与手段讲授+演练教学目的与要求了解GUI。 了解AWT与Swing。
33、教学重点与难点Swing常用的控件GUI布局教学过程设计(包括导入语、主要内容、时间安排、提问或举例等)1、 GUI的概念 (1) 到目前为止,我们在C和Java中编写的都是基于控制台的程序; (2) GUI(Graphical User Interface)即图形用户界面,它能够使应用程序看上去更加友好; (3) GUI是施乐公司提出,由苹果与微软公司将其发扬光大。 (4) Java的GUI包括AWTSwing、SWTJFace 2、 AWT简介 (1) 实现GUI编程是由一系列图形化组件来完成的(即一系列定义好的类),这些组件也被称为控件; (2) 在Java的早期版本中,GUI组件由名为
34、AWT(Abstract Window Toolkit,抽象窗口工具包)的标准库来提供; (3) AWT发布过程过于匆忙,据称开发过程仅三个月,bug太多,依赖底层操作系统,是重量级的 3、 常用的基本Swing组件 (1) 在Swing编程中,有一些经常要使用到的组件,其中包括: (2) JFrame(窗体,框架) (3) JButton(按钮) (4) JLabel(标签) (5) JTextField(文本框) 4、 javax.swing.JFrame (1) JFrame组件用于在Swing程序中创建窗体; (2) JFrame类的构造方法有4种重载方式,以下是常用的几种:JFram
35、e();JFrame(String title);5、 JPanel容器 (1) JPanel是最简单的容器类。应用程序可以将其他组件放在面板提供的空间内。 (2) JPanel只能存在于其他的容器(Window或其子类)中,一般被放入Frame中 (3) JFrame可以被划分为若干个JPanel,然后在JPanel上进一步进行组件的布局; (4) 面板的默认布局管理器是FlowLayout布局管理器; (5) 不能为JPanel设置标题。作业/思考题: 编写一个窗体实现类,大小400*300,点关闭的可以结束程序。教学后记:课程教案(: 13 )授课内容常用类课 型理论 实践授课学时2教学
36、方法与手段讲授+演练教学目的与要求了解java.util包。 能够熟练运用如下类进行Java编程教学重点与难点Date类、Calendar类、Random类的使用教学过程设计(包括导入语、主要内容、时间安排、提问或举例等)1、 java.util包简介。 a) java.util包是Java内置的一个工具包,其中包含一系列常用的工具类; b) 如处理日期和日历的类以及一些集合类; c) java.util包不会默认导入,如果要使用到该包中的类,则必须在程序的开始部分显式地声明如下语句: import java.util.*; 2、Date类 a) Date类对象用来表示时间和日期; b) 该类
37、提供一系列操纵日期和时间各组成部分的方法; c) Date类最多的用途是获取系统当前的日期和时间。(3) Calendar类 a) Calendar类也是用来操作日期和时间的类,但它可以以整数形式检索类似于年、月、日之类的信息; b) Calendar类是抽象类,无法实例化,要得到该类对象只能通过调用getInstance方法来获得; c) Calendar对象提供为特定语言或日历样式实现日期格式化所需的所有时间字段。 (4) Random类 a) Random类专门用来生成随机数b) 该类的构造方法有2种重载方式。作业/思考题: 编写一个日期使用类,使用Date的Date(int year,
38、 int month, int date) 构造方法,构造当前日期,并打印输出.求出当前日期自1970年1月1日起的已经有多少天了。教学后记:课程教案(: 14 )授课内容记事本软件课 型理论 实践授课学时4教学方法与手段教授+小组讨论教学目的与要求了解软件开发流程。 培养团队协作能力。 培养学生的软件文档的撰写能力。教学重点与难点指导学生进行课程的小组讨论,帮助他们理顺思路和项目的业务逻辑。GUI技术的运用。教学过程设计(包括导入语、主要内容、时间安排、提问或举例等)2个学时讲述记事本软件的实现思路以及展示程序实现;2个学时完成报告的检查,过程中由老师补充和总结。分组讨论安排:1. 应用GU
39、I技术,编写一个记事本软件,具备如下功能(1) 文件操作:新建、打开、保存、另存为、退出(2) 编辑:撤消、剪切、复制、粘贴、删除(3) 格式:自动换行(4) 帮助:关于完成需求文档、设计文档。 2.学生自由组队,每组3-5人,并指派一名组长。3.完成软件的详细设计报告。4.由小组长汇报软件的设计报告。作业/思考题: 教学后记:课程教案(: 15 )授课内容复习课 型理论 实践授课学时4教学方法与手段讲授教学目的与要求复习本课程学习的知识并进行总结教学重点与难点学生提问答疑教学过程设计(包括导入语、主要内容、时间安排、提问或举例等)1.Java语言概述 2.Java语言基础 3.Java程序语句和流程控制 4.Java面向对象程序设计 5.Java接口、包和异常 6.字符串处理 7.Java的输入输出 8.Java多线程设计 9.创建用户界面 10.数据库编程作业/思考题: 教学后记:第 28 页