admin 管理员组

文章数量: 887042


2023年12月25日发(作者:食肉动物简笔画)

第1章 Java基础知识

课程名称

任务名称

项目性质

授课班级

Java程序设计基础教程

(慕课版)

Java基础知识

项目名称

课时

Java基础知识

4

□演示性 □验证性 □设计性 √综合性

能力目标:

授课日期

授课地点

1. 具备使用Eclipse编写Java程序的能力

2. 具备创建一个Java项目的能力

知识目标:

教学目标

1. 了解Java的诞生、发展、特点

2. 掌握Java开发环境搭建的方法

3. 掌握Java开发工具的使用

素质目标:

1. 培养学生信息搜集能力

2. 培养学生团结合作、互帮互助的能力;

1. 任务描述

2. 任务展示与实现

(1)利用Eclipse编写Java代码并验证其效果

教学内容

(2)创建一个Java项目

(3)学生动手操作

3. 教师讲解本任务涉及的知识点

4. 任务小结

教学重点

教学难点

1. Java的语言特点

2. Java开发工具的使用

1. Java开发工具的使用

1. 装有JDK、Eclipse的电脑

2. 教学课件PPT

3. 教材:《Java程序设计基础教程(慕课版)》刘刚 刘伟 人民邮电出版社

1. 使用Eclipse编写Hello World程序。

2. 创建一个Java项目

教学准备

作业设计

1

教学过程

教学

环节

课前组织

课程

说明

教学内容与过程

(教学内容、教学方法、组织形式、教学手段)

做好课前“5分钟”教学管理(多媒体、实训室),做好上课前的各项准备工作(打开电脑、打开课件、打开软件、打开U盘中的素材位置、打开授课计划、教案等),吸引学生注意力。

【课前说明】

分别从Java的诞生、Java的发展、Java开发工具包、Java运行环境、Java虚拟机、Java开发工具等知识点进行初步的了解。

【目的】

使学生从了解本单元的学习目标、学习重点、考评方式等方面明确学习本单元知识的要求和目标。

课程

内容

描述

一、什么是Java?

从Java的诞生、Java的发展历史等方面展开,介绍Java的特点,了解Java的发展概况及其特点。掌握Java是基于对象和事件驱动的客户端脚本语言这一核心概念。

二、Java开发环境如何搭建?

Java的开发基于JDK,这是整个Java的核心,包括了JRE、Java工具和Java基础类库。JRE是运行Java程序所必需的环境的集合,包含JVM标准实现及Java核心类库。JVM是整个Java实现跨平台核心的部分,能够运行以Java语言写作的软件程序。Java开发环境的搭建就是JDK的安装过程。

三、如何使用Java开发工具?

Java的开发工具有很多,常用的有Eclipse、NetBeans、IntelliJ IDEA和MyEclipse。其中Eclipse和NetBeans是免费的,IntelliJ IDEA和MyEclipse是收费的。

案例:

1. Eclipse的安装及使用

2. 创建一个项目,在项目中创建一个Java类“”,在类中编写代码,使得程序在运行时在控制台打印输出内容:“Hello World,this is my first program!”。

package ;

public class HelloWorld {

public static void main(String[] args) {

n("Hello World,this is my first program!");

}

}

2

课堂

实训

1. 使用Eclipse创建Java项目和编写Java类,实现一个Java程序。

2. 创建一个简单的Java项目,能够自主创建一个独立的项目。

总结

评价

通过学习,学生能够掌握Java的发展历程和语言特点,Java开发环境的搭建以及使用编辑器创建Java项目的方法。

本节课主要运用案例教学法,通过对Java概念的深入理解,掌握Java的基本特点,深入探讨Java编程的方法,通过实例的方法加强对JDK、JRE和JVM的关系的理解和JDK的安装及Java开发环境的环境变量的配置的学习,达到能够独立熟练运用Java来解决实际问题的能力。教学评价方式以小组为单位,以完成案例的质量为评价标准,形成任务驱动,小组协作,质量与速度并存的课堂评价方式 ,促进学生的自主、创新学习的方式 。

3

第2章 基本数据类型及运算符

课程名称

任务名称

项目性质

授课班级

Java程序设计基础教程

(慕课版)

基本数据类型及运算符

项目名称

课时

基本数据类型及运算符

6

□演示性 □验证性 □设计性 √综合性

能力目标:

授课日期

授课地点

1. 具备进行数据类型转换的能力

2. 具备运用运算符计算的能力

知识目标:

教学目标

1. 掌握8种基本数据类型及其拆装箱

2. 掌握Java中的常用操作符

3. 掌握Java中表达式的各种运算符的执行顺序和结合性

素质目标:

1. 培养学生信息搜集能力

2. 培养学生团结合作、互帮互助的能力;

1. 任务描述

2. 任务展示与实现

(1)将十进制的整型IP地址转换成long类型值

教学内容

(2)将long类型转换成IP

(3)学生动手操作

3. 教师讲解本任务涉及的知识点

4. 任务小结

教学重点

教学难点

1. Java的基本数据类型

2. Java的运算符

2. 运算符的优先级问题

1. 装有JDK、Eclipse的电脑

2. 教学课件PPT

3. 教材:《Java程序设计基础教程(慕课版)》刘刚 刘伟 人民邮电出版社

教学准备

作业设计

2.将long类型的整数转换成一个十进制形式的IP地址

4

教学过程

教学

环节

课前组织

课程

说明

教学内容与过程

(教学内容、教学方法、组织形式、教学手段)

做好课前“5分钟”教学管理(多媒体、实训室),做好上课前的各项准备工作(打开电脑、打开课件、打开软件、打开U盘中的素材位置、打开授课计划、教案等),吸引学生注意力。

【课前说明】

对整型、浮点型、布尔型和字符型等基本数据类型,数据类型、类和接口等复合数据类型,算术运算符、关系运算符、逻辑运算符、条件运算符、位运算符和赋值运算符六种运算类型及其优先级等知识点进行初步的了解。

【目的】

使学生从了解本单元的学习目标、学习重点、考评方式等方面明确学习本单元知识的要求和目标。

课程

内容

描述

一、Java的基本数据类型

因数据的类型不同,其表示的数据范围、精度和所占的存储空间都不相同。在Java最初设计的时候就明确了它要支持的两种数据类型:基本数据类型和对象。

基本数据类型:整型、浮点型、布尔型和字符型。

复合数据类型:数据类型、类和接口。

基本数据类型有8种:boolean、byte、char、short、int、long、float和double,其中以boolean、int、char和double最为常用。

二、Java的运算符

Java中的运算符共36种,依照运算类型可以分为6大类,包含算术运算符、关系运算符、逻辑运算符、条件运算符、位运算符和赋值运算符。Java语言的运算符不仅具有不同的优先级,还要受运算符结合性的制约。Java中的运算符的结合性分为两种,即左结合性(自左向右)和右结合性(自右向左)。

三、如何使用Java计算?

案例:

1. 常量和变量的具体应用

public class ConstantAndVariablesDemo {

public static void main(String[] args) {

final int MALE = 1 ; // 定义常量MALE表示男性,常量需要在声明时赋值

int age ; // 声明age,类型是int类型的

int height = 180; // 声明height,类型是int类型的,并赋值为180

// age未定义,所以此处会抛出错误

// n("MALE = " + MALE + "; age = " + age + " ; height = " + height);

age = 20; // 给age赋值

// 打印输出

n("MALE = " + MALE + "; age = " + age + " ; height = " + height);

5

height = 177; // 变量的重新赋值

n("MALE = " + MALE + "; age = " + age + " ; height = " + height);

// MALE = 0; // 常量无法重新赋值

}

}

2. 自增自减运算的具体应用

public class AutoIncrAndDecrDemo {

public static void main(String[] args) {

int a = 1;

int b = 1;

int c = ++a; // 前自增

int d = --b; // 前自减

n("a = " + a + ", b = " + b + ", c = " + c + ",d = " + d);

c = a++; // 后自增

d = b--; // 后自减

n("a = " + a + ", b = " + b + ", c = " + c + ",d = " + d);

}

}

课堂

实训

1. 在程序开发中可能会碰到将IP地址转换成long类型的整数,或者将十进制整数转换成IP地址的情况,此时,需要将一个地址转换成一个long类型整数,或者将long类型的整数转换成一个十进制形式的IP地址。

总结

评价

通过学习,学生能够掌握Java的数据类型和运算符基本概念,运算符的优先级以及运算规则。

本节课主要运用案例教学法,通过对Java的数据类型和运算符的深入理解,掌握Java的运算符的优先级,通过实例的方法加强对Java数据类型和运算符的理解,达到能够独立熟练运用Java的数据类型和运算符来解决实际问题的能力。教学评价方式以小组为单位,以完成案例的质量为评价标准,形成任务驱动,小组协作,质量与速度并存的课堂评价方式 ,促进学生的自主、创新学习的方式 。

6

7

第1章 初识Java

课程名称

任务名称

项目性质

授课班级

Java程序设计基础教程

(慕课版)

控制执行流程

项目名称

课时

控制执行流程

4

□演示性 □验证性 □设计性 √综合性

能力目标:

授课日期

授课地点

1. 具备使用if条件分支语句解决问题的能力

2. 具备使用for循环语句解决问题的能力

3. 具备使用while循环语句解决问题的能力

知识目标:

教学目标

1. 了解什么是流程控制语句

2. 掌握分支结构的语法结构和用法

3. 掌握循环语句的用法

4. 掌握break语句与continue语句的用法

素质目标:

1. 培养学生知识掌握和技能运用能力

2. 培养学生团结合作、互帮互助的能力;

1. 任务描述

2. 任务展示与实现

(1)分别是利用for语句、while语句实现循环

教学内容

(2)利用if嵌套语句和switch多层分支语句实现复杂分支

(3)利用循环语句中break和continue语句实现求3的倍数

(4)学生动手操作

3. 教师讲解本任务涉及的知识点

4. 任务小结

教学重点

教学难点

1. if…else条件分支语句

2. do while循环语句与while循环语句在使用上的不同

1. 嵌套语句

2. 循环语句中的Continue和break语句的使用

1. 装有JDK、Eclipse的电脑

2. 教学课件PPT

3. 教材:《Java程序设计基础教程(慕课版)》刘刚 刘伟 人民邮电出版社

教学准备

作业设计

3.编写一个排序的程序,可以让一个混乱的数组变成一个有序的数组。

8

教学过程

教学

环节

课前组织

课程

说明

教学内容与过程

(教学内容、教学方法、组织形式、教学手段)

做好课前“5分钟”教学管理(多媒体、实训室),做好上课前的各项准备工作(打开电脑、打开课件、打开软件、打开U盘中的素材位置、打开授课计划、教案等),吸引学生注意力。

【课前说明】

分别介绍Java流程控制语句的选择结构和循环结构,分支结构也叫选择结构,语句包括if-else语句和switch语句,都是根据一定的条件去执行一条语句或语句组;循环语句指在循环语句中指定语句重复执行的次数,也可以指定重复执行的条件。

【目的】

使学生从了解本单元的学习目标、学习重点、考评方式等方面明确学习本单元知识的要求和目标。

课程

内容

描述

一、讲解什么是控制执行结构

二、选择结构语句的语法结构

if选择语句:

if (boolean-expression) {

statement; // 执行语句内容

} else {

statement; // 执行语句内容

}

switch选择语句:

switch (selector) {

case selector: statement; break;

case selector: statement; break;

case selector: statement; break;

case selector: statement; break;

...

default: statement;

}

三、循环结构语句的语法结构

for循环语句:

for (init; boolean-expression; step) {

statement;

}

do-while循环语句:

do {

statement;

} while (boolean-expression);

while循环语句:

while (boolean-expression) {

statement; // 循环体

9

}

四、break语句和continue语句在循环语句中的用法。

案例:

2. 常量和变量的具体应用

public class ConstantAndVariablesDemo {

public static void main(String[] args) {

final int MALE = 1 ; // 定义常量MALE表示男性,常量需要在声明时赋值

int age ; // 声明age,类型是int类型的

int height = 180; // 声明height,类型是int类型的,并赋值为180

// age未定义,所以此处会抛出错误

// n("MALE = " + MALE + "; age = " + age + " ; height = " + height);

age = 20; // 给age赋值

// 打印输出

n("MALE = " + MALE + "; age = " + age + " ; height = " + height);

height = 177; // 变量的重新赋值

n("MALE = " + MALE + "; age = " + age + " ; height = " + height);

// MALE = 0; // 常量无法重新赋值

}

}

2. break和continue

public class ContinueBreakDemo {

public static void main(String[] args) {

for (int i = 0 ; i < 10; i++) {

if (2 == i) {

n("程序运行跳出标志!跳出循环!");

break;

}

n("第" + i + "次循环。");

}

int count = 0 ;

while (5 > count) { // 在5以内循环

count++; // 自增1

if (count % 3 == 0) { // 如果count是3的倍数,进行下一次循环

continue;

}

n("第" + count + "次循环!");

}

}

}

10

课堂

实训

1. 冒泡排序

冒泡的原则是,每一次循环结束之后都能将乱序中的最大数放到乱序数列的最右边。

(1)用for循环对数组进行循环。

(2)从左往右依次比较相邻的两个数,将较大者放到较小者的右边,保证最右边的数字大于左边的所有数字。

(3)继续执行,依次将之后的较大数字放到较小数字的右边,直到所有的数字都比自己左边的数字大、比右边的数字小。

总结

评价

通过学习,学生能够掌握Java流程控制语句中的选择结构和循环结构语句在程序编写中的具体用法。

本节课主要运用案例教学法,通过对Java流程语句的深入理解,掌握Java选择结构和循环结构的基本特点,深入探讨Java的选择结构和循环结构的使用方法,通过实例的方法加强对Java的选择结构和循环结构的理解,达到能够独立熟练运用Java的选择结构和循环结构流程语句来解决实际问题的能力。教学评价方式以小组为单位,以完成案例的质量为评价标准,形成任务驱动,小组协作,质量与速度并存的课堂评价方式 ,促进学生的自主、创新学习的方式 。

11

第4章 字符串

课程名称

任务名称

项目性质

授课班级

Java程序设计基础教程

(慕课版)

字符串

项目名称

课时

字符串

6

□演示性 □验证性 □设计性 √综合性

能力目标:

授课日期

授课地点

1. 具备使用字符串常用API解决问题的能力

2. 具备使用StringBuffer类操作字符串的能力

3. 具备使用数组常用API解决问题的能力

知识目标:

教学目标

1. 掌握String类及其常用API

2. 掌握StringBuffer类的应用

3. 掌握常用的Java API

素质目标:

1. 培养学生知识掌握和技能运用能力

2. 培养学生团结合作、互帮互助的能力;

1. 任务描述

2. 任务展示与实现

(1) Random类随机产生一个随机数。

教学内容

(2) Scanner类接收用户的输入。

(3) System类实现系统退出。

3. 教师讲解本任务涉及的知识点

4. 任务小结

教学重点

教学难点

1. 字符串的分割、比较等操作

2. 数组的拷贝、随机数的生成

1. StringBuilder与StringBuffer的比较

2. Random类与Math类生成随机数

1. 装有JDK、Eclipse的电脑

2. 教学课件PPT

3. 教材:《Java程序设计基础教程(慕课版)》刘刚 刘伟 人民邮电出版社

教学准备

作业设计

4.编写一个猜数字游戏

12

教学过程

教学

环节

课前组织

课程

说明

教学内容与过程

(教学内容、教学方法、组织形式、教学手段)

做好课前“5分钟”教学管理(多媒体、实训室),做好上课前的各项准备工作(打开电脑、打开课件、打开软件、打开U盘中的素材位置、打开授课计划、教案等),吸引学生注意力。

【课前说明】

本章主要讲解String类和常用的Java API。首先讲解String类及常用的String操作方法,并讲解了不同类型的操作方法;然后讲解StringBuffer和StringBuilder;最后讲解Java API中常用的几个工具类,System、Random和Scanner类,同时简单讲解了Math类,

【目的】

使学生从了解本单元的学习目标、学习重点、考评方式等方面明确学习本单元知识的要求和目标。

课程

内容

描述

一、 讲解String类及常用的String操作方法

Java核心的类库中定义了String类用于字符串的常用操作。String类的常用方法很多,但可以总体归为4类:字符串查询操作、字符串修改操作、字符串分割操作以及字符串比较操作。

二、 讲解StringBuffer和StringBuilder

StringBuffer和StringBuilder的直接父类都是AbstractStringBuilder。它们唯一的区别就是,StringBuffer的每个方法上都多了一个synchronized关键字。StringBuffer是线程安全的,而StringBuilder则不是。在编写程序的时候如果判定不需要考虑多线程环境,那么首选StringBuilder,因为无须考虑多线程。

三、讲解Java API中常用的几个工具类,System、Random和Scanner类,同时简单讲解了Math类

案例:

1. 字符串的修改操作

public class StringModifyDemo {

public static void main(String[] args) {

String str = " 7731-5524-jhdF-FfF0 ";

n("将F替换成X -" + e("F", "X") + "-");

n("将所有的F替换成X -" + eAll("F", "X") + "-");

n("将第一个F替换成b -" + eFirst("F", "b") + "-");

n("将字符串全部转换成大写 -" + rCase() + "-");

n("将字符串全部转换成小写 -" + rCase() + "-");

n("去除字符串前后的空格 -" + () + "-");

n("拼接BVNS字符串 -" + ("BVNS") + "-");

}

}

13

2. 数组拷贝

public class ArrayCopyDemo {

public static void main(String[] args) {

String[] fromArr = {"abc", "bcd", "cde", "efg", "fgh"}; // 源数组

String[] toArr1 = {"123", "456"}; // 目标数组1

String[] toArr2 = new String[9]; // 目标数组2

// 从源数组中的第0个元素向目标数组2中复制3个元素,从索引位置1开始

opy(fromArr, 0, toArr2, 1, 3);

for (String str : toArr2) {

(str + " "); // 打印输出数组内的元素

}

n("n ************************************* ");

// 从源数组中的第0个元素向目标数组1中复制3个元素,从索引位置1开始

opy(fromArr, 0, toArr1, 1, 3);

for (String str : toArr1) {

(str + " "); // 打印输出数组内的元素

}

n("n ************************************* ");

}

}

课堂

实训

2. 参考移动的活动,我们可以将其简化成一个动手任务:猜数字游戏。系统随机生成一个1~100的随机数,玩家键入自己猜测的数字,如果猜中了,则提示玩家赢了,游戏结束,否则提示用户猜测的数字是大了或者小了,让玩家继续猜,玩家有十次猜测机会。

总结

评价

通过学习,学生能够掌握String类和常用的Java API在程序编写中的具体用法。

本节课主要运用案例教学法,通过对字符串深入理解,掌握String、StringBuffer、StringBuilder类的基本特点,深入探讨String、StringBuffer、StringBuilder类的使用方法,通过实例的方法加强对String类和常用的Java API的理解,达到能够独立熟练运用String类和常用的Java API来解决实际问题的能力。教学评价方式以小组为单位,以完成案例的质量为评价标准,形成任务驱动,小组协作,质量与速度并存的课堂评价方式 ,促进学生的自主、创新学习的方式 。

14

15

第5章 面向对象

课程名称

任务名称

项目性质

授课班级

Java程序设计基础教程

(慕课版)

面向对象

项目名称

课时

面向对象

6

□演示性 □验证性 □设计性 √综合性

能力目标:

授课日期

授课地点

1. 具备使用对象的封装、继承和多态解决问题的能力

2. 具备使用掌握抽象类和接口解决问题的能力

3. 具备使用掌握重写和重载解决问题的能力

教学目标

知识目标:

1. 了解面向对象、类的概念和使用

2. 掌握封装、继承、多态的应用

素质目标:

1. 培养学生知识掌握和技能运用能力

2. 培养学生团结合作、互帮互助的能力;

1. 任务描述

2. 任务展示与实现

(1) 定义1个抽象类

教学内容

(2) 定义3个接口

(3) 定义1个对象,继承抽象类并实现接口

3. 教师讲解本任务涉及的知识点

4. 任务小结

教学重点

教学难点

1. 封装、继承、多态的应用

1. 接口的使用

2. 重写与重载的区别

1. 装有JDK、Eclipse的电脑

2. 教学课件PPT

3. 教材:《Java程序设计基础教程(慕课版)》刘刚 刘伟 人民邮电出版社

教学准备

作业设计

5.编写代码模拟间谍变装功能

16

教学过程

教学

环节

课前组织

课程

说明

教学内容与过程

(教学内容、教学方法、组织形式、教学手段)

做好课前“5分钟”教学管理(多媒体、实训室),做好上课前的各项准备工作(打开电脑、打开课件、打开软件、打开U盘中的素材位置、打开授课计划、教案等),吸引学生注意力。

【课前说明】

本章主要讲解面向对象的知识。首先介绍了Java中包和访问修饰符的概念,之后介绍了类的概念。接着介绍了封装、继承和多态的概念。封装包含两个层面,属性的封装和方法的封装(类也是一种形式的封装),属性的封装是让属性隐藏起来,只能通过特定方式获取和修改,方法的封装则是将方法的实现隐藏起来,将方法名称暴露出去。一个对象可以是多种类型就是多态。本章还介绍了重写和重载,重写是覆盖父类或实现接口中某个方法的方法体,但是方法签名不变,重写使用@Override注解注释;重载是指可以定义多个重名方法,但这些重名方法的方法签名是不同的,也就是说,传入的参数类型或者个数是不相同的。

【目的】

使学生从了解本单元的学习目标、学习重点、考评方式等方面明确学习本单元知识的要求和目标。

课程

内容

描述

三、 讲解面向对象和类的概念

包是Java提供的用于解决命名冲突的一种机制,其采用了属性目录的存储方式,有效地解决了命名冲突的问题。在Java中有4种访问修饰符:public、protected、private和default。类就是对对象的抽象,用于描述一组对象共同的属性和行为。在Java中,类可以定义成员变量和成员方法,这些属性就是用于描述对象的属性,也就是对象的特征,方法则用于描述对象的行为。

四、 讲解封装、继承、多态

在面向对象编程中,封装又叫隐藏实现。在面向对象中,如果对象有相同的属性和行为,那么就归为一类,当这种归类还可以延伸时,则继续分类,直到细化至需要的层级。这种层级关系就是继承。在软件工程中,接口泛指提供别人调用的方法或者函数,在Java中它是一个对行为的抽象的类。Java语言支持两种形式的多态:运行时多态和编译时多态。运行时多态是指Java中一种动态性的多态,通过覆盖基类中相同方法签名的形式来实现。编译时多态是指Java中一种静态性的多态,通过重载函数的形式来实现。重载可以实现本类内的方法多态性,重写可以实现子类或实现类的多态性。

案例:

1. 类的声明

// 定义狼狗类

public class Wolfdog {

// 狼狗的姓名

String name;

// 狼狗的年龄

int age;

// 狼狗毛的颜色

String color;

// 狼狗叫

17

public void bark() {

n("Wolfdog named " + name + " dress " + color + " is bark at age " + age + ".");

}

}

2. 方法的重载

public class OverwriteDemo {

void print(int i) {

n("打印整型值:" + i);

}

void print(String s) {

n("打印字符串类型值:" + s);

}

void print(String s1, String s2) {

n("打印字符串类型值1:" + s1 + ";字符串类型值2:" + s2);

}

public static void main(String[] args) {

OverwriteDemo owd = new OverwriteDemo();

// 编译时多态

(12);

("1234");

("字符串1", "字符串2");

}

}

课堂

实训

3. Tom是一个间谍,为了获取敌方情报,Tom会多项技能,能在不同的场景下扮演不同的角色以迷惑对方。Tom拥有丰富的地理知识,在日常生活中他是一位地理老师;为了能够获取敌方的数据库内容,Tom拥有丰富的黑客知识,能够破解很多服务器;为了逃避敌人的追捕,必要的时候还要飙车以逃脱敌人的跟踪;同时Tom也是一位密码学方面的高手,能够利用摩斯密码传递情报并且能够破解敌方发送的加密信息。编写代码模拟Tom的变身行为。

18

总结

评价

通过学习,学生能够掌握Java中包、访问修饰符、类的概念,封装、继承和多态的概念的具体用法。

本节课主要运用案例教学法,通过对面向对象深入理解,掌握封装、继承和多态的基本特点,深入探讨封装、继承和多态的使用方法,通过实例的方法加强重载和重写的理解,达到能够独立熟练运用封装、继承和多态来解决实际问题的能力。教学评价方式以小组为单位,以完成案例的质量为评价标准,形成任务驱动,小组协作,质量与速度并存的课堂评价方式 ,促进学生的自主、创新学习的方式 。

19

第6章 集合和数组

课程名称

任务名称

项目性质

授课班级

Java程序设计基础教程

(慕课版)

集合和数组

项目名称

课时

集合和数组

8

□演示性 □验证性 □设计性 √综合性

能力目标:

授课日期

授课地点

1. 具备使用集合框架解决问题的能力

2. 具备使用数组解决问题的能力

知识目标:

教学目标

1. 了解Collection,Map集合,List链表,Set集合的概念和使用

2. 掌握集合遍历的应用

3. 掌握数组的初始化与应用

素质目标:

1. 培养学生知识掌握和技能运用能力

2. 培养学生团结合作、互帮互助的能力;

1. 任务描述

2. 任务展示与实现

(1)通过操作链表实现链表的插入与删除

教学内容

(2)通过Map保存玩家的牌

(3)通过循环控制语句实现程序

3. 教师讲解本任务涉及的知识点

4. 任务小结

教学重点

教学难点

1. 链表的操作与应用

2. Iterator接口与增强型for循环

1. HashMap及TreeMap的使用

2. 数组排序方法

1. 装有JDK、Eclipse的电脑

2. 教学课件PPT

3. 教材:《Java程序设计基础教程(慕课版)》刘刚 刘伟 人民邮电出版社

教学准备

作业设计

6.编写洗牌发牌程序

7.编写代码实现数组排序

20

教学过程

教学

环节

课前组织

课程

说明

教学内容与过程

(教学内容、教学方法、组织形式、教学手段)

做好课前“5分钟”教学管理(多媒体、实训室),做好上课前的各项准备工作(打开电脑、打开课件、打开软件、打开U盘中的素材位置、打开授课计划、教案等),吸引学生注意力。

【课前说明】

本章介绍了集合与数组。在集合中着重介绍Set集合、List集合和Map集合,其中Set是无序不重复的集合,List是可重复的有序链表,Map是key值不重复的散列表,这些数据类型封装了实现算法,让开发者无须知道算法就可以高效地使用这些数据类型。之后介绍数组,数组是一种快速随机访问的数据类型。

【目的】

使学生从了解本单元的学习目标、学习重点、考评方式等方面明确学习本单元知识的要求和目标。

课程

内容

描述

五、 讲解集合的概念

集合框架则是为了表示和操作集合而规定的统一的标准的体系结构。集合框架包含三大部分:对外接口、接口实现和对集合运算的算法。Java提供了Collection的集合框架,在其内定义了很多抽象的数据类型,包括集(Set)、链表(List)、数组(Array)、树(Tree)和散列表(HashTable)等,另外还有比较特殊的映射(Map)。

六、 讲解集合的遍历

Colleciton的遍历可以使用iterator()方法获取一个实现了Iterator接口的可遍历对象。如果是Map类型,则可以使用对象或者keySet()方法获取一个Set类型的key集合,或者使用values()方法获取一个Collection对象然后调用iterator()方法。

七、 讲解数组的使用

数组的存取是以数组中的一个元素为单位进行的,一个数组中拥有的元素的个数是该数组的长度。在Java中,数组也是对象,需要动态地生成,数组一般分为一维数组、二维数组和多维数组。

案例:

1. HashMap及TreeMap的使用

public class TreeMap2HashMapDemo {

public static void main(String[] args) {

// 创建HashMap对象

Map hashMap = new HashMap<>();

// 添加元素

("Java", "Java User");

("C", "C user");

("C++", "C++ user");

21

("Go", "Go user");

n("hashMap = " + hashMap);

// 根据hashMap构建一个TreeMap

TreeMap treeMap = new TreeMap<>(hashMap);

n("treeMap = " + treeMap);

HashMap hMap = new HashMap<>(treeMap);

n("hMap = " + hMap);

}

}

课堂

实训

4. 编写一个自动发牌程序,模拟三人斗地主的摸牌场景。首先要给出提示,谁首先开始摸牌,并且摸牌要和现实摸牌一样,三人循环摸牌,最后还要剩余三张底牌,同时给出地主牌,摸到地主牌的玩家拥有三张底牌,三张底牌三人都可以看到。当三张底牌派发给地主后提示玩家摸牌结束。

5. 对于一个给定的数组,如果通过冒泡排序的方式进行实现,那么对一些元素庞大的任务而言,无疑是一个灾难,在猜数字的游戏中使用的中分法猜数字的方式能够快速且准确地缩小数字的所属范围。如果使用这种方式来排序,效率也会相应地高很多。

总结

评价

通过学习,学生能够掌握Set集合、List集合、Map集合和数组的具体用法。

本节课主要运用案例教学法,通过对集合和数组深入理解,掌握Set集合、List集合、Map集合和数组的基本特点,深入探讨Set集合、List集合、Map集合和数组的使用方法,通过实例的方法加强集合的遍历的理解,达到能够独立熟练运用Set集合、List集合、Map集合和数组来解决实际问题的能力。教学评价方式以小组为单位,以完成案例的质量为评价标准,形成任务驱动,小组协作,质量与速度并存的课堂评价方式 ,促进学生的自主、创新学习的方式 。

22

第7章 文件及流

课程名称

任务名称

项目性质

授课班级

Java程序设计基础教程

(慕课版)

文件及流

项目名称

课时

文件及流

6

□演示性 □验证性 □设计性 √综合性

能力目标:

授课日期

授课地点

1. 具备使用File类解决问题的能力

2. 具备使用输入输出流解决问题的能力

知识目标:

教学目标

4. 了解File的常用API的概念和使用

5. 掌握字节流和字符流的应用

素质目标:

1. 培养学生知识掌握和技能运用能力

2. 培养学生团结合作、互帮互助的能力;

1. 任务描述

2. 任务展示与实现

(1)首先需要读取控制台的输入内容,获取用户想要处理的下一个操作内容。

(2)根据输入的指令和输入内容,进行相应的操作,例如创建文件、删除文件等。

(3)当输入指定4时,需要读取文件内容,判断文件内容是否符合要求,如果内容符合要求,则循环执行文件内容。

3. 教师讲解本任务涉及的知识点

4. 任务小结

教学内容

教学重点

教学难点

3. File的常用API

4. 字节流和字符流

1. 目录文件遍历的方法

2. 字节流和字符流的区别

1. 装有JDK、Eclipse的电脑

2. 教学课件PPT

3. 教材:《Java程序设计基础教程(慕课版)》刘刚 刘伟 人民邮电出版社

教学准备

作业设计

8.编写一个文件管理系统,通过控制台的输出内容进行文件操作

23

教学过程

教学

环节

课前组织

课程

说明

教学内容与过程

(教学内容、教学方法、组织形式、教学手段)

做好课前“5分钟”教学管理(多媒体、实训室),做好上课前的各项准备工作(打开电脑、打开课件、打开软件、打开U盘中的素材位置、打开授课计划、教案等),吸引学生注意力。

【课前说明】

本章介绍文件和流。在Java中,文件的管理依靠File类,而文件的读写则依靠输入输出流来读取。输入输出流是Java中非常重要的内容,其使用范围比较广泛,例如项目中配置文件的读取、xml类型文件的读取和OFFICE文件的读取等,都是使用输入输出流进行的,Java的Web在实际应用中,也是依靠流的形式进行客户端的浏览器界面与应用服务器的交互。

【目的】

使学生从了解本单元的学习目标、学习重点、考评方式等方面明确学习本单元知识的要求和目标。

课程

内容

描述

八、 讲解File类的使用

文件有其固有属性,如大小、创建时间、读写属性等,同时还有创建与删除的操作,这些在Java中都由File类来实现。为了方便开发者处理文件,File类提供了丰富的API供开发者使用。

九、 讲解输入输出流的概念

在计算机中,数据的传输一般使用的是二进制的数据流,流中的数据是按字节进行的,所有的数据流都可以使用字节流进行读写操作。BufferedReader和BufferedWriter这两个对象可以对流进行按行读取。

十、 讲解数组的使用

案例:

1. 文件的固有属性

import ;

public class FileInherentAttributeDemo {

public static void main(String[] args) {

File file = new File("");

if (()) {

n("文件的长度:" + ());

n("文件的绝对路径:" + olutePath());

n("文件的相对路径:" + h());

n("文件是否是隐藏文件:" + en());

n("是否是文件类型:" + ());

n("是否是文件夹类型:" + ctory());

}

}

}

24

课堂

实训

6. 编写一个文件管理系统,通过控制台的输出内容进行文件操作:1-创建文件、2-删除文件、3-复制文件和4-根据输入文件名称,读取文件内容执行对应的指令。当用户输入1时,会读取用户的下一行输入,会根据用户的名称和后续输入创建一个文件并将输入录入文件;当用户输入2,则会检索当前目录下的文件,如果文件存在,则删除该文件,否则,提示文件不存在;当用户输入3,则读取用户输入的文件名称并进行复制,默认是文件名称加后缀“.copy”标注;当用户输入4,会查找当前目录下的文件,如果文件存在,则执行文件的内容;当用户输入“exit”并在后续输入“Y”则退出当前系统。

总结

评价

通过学习,学生能够掌握File类、字节流、字符流的具体用法。

本节课主要运用案例教学法,通过对文件和流深入理解,掌握File类、字节流、字符流的基本特点,深入探讨File类、字节流、字符流的使用方法,通过实例的方法加强File类和输入输出类的理解,达到能够独立熟练运用File类、字节流、字符流来解决实际问题的能力。教学评价方式以小组为单位,以完成案例的质量为评价标准,形成任务驱动,小组协作,质量与速度并存的课堂评价方式 ,促进学生的自主、创新学习的方式 。

25

第8章 日期和时间

课程名称

任务名称

项目性质

授课班级

Java程序设计基础教程

(慕课版)

日期和时间

项目名称

课时

日期和时间

4

□演示性 □验证性 □设计性 √综合性

能力目标:

授课日期

授课地点

1. 具备使用Date类解决问题的能力

2. 具备使用Calendar类解决问题的能力

知识目标:

教学目标

6. 掌握Date类的应用

7. 掌握Calendar类的应用

素质目标:

1. 培养学生知识掌握和技能运用能力

2. 培养学生团结合作、互帮互助的能力;

1. 任务描述

2. 任务展示与实现

(1)将字符串类型的数据转换成Calendar类型,并在计算结束后返回字符串类型的日期。

(2)由日期计算星期数

3. 教师讲解本任务涉及的知识点

4. 任务小结

教学内容

教学重点

教学难点

5. Date类的应用

6. Calendar类的应用

1.日历类型的计算

1. 装有JDK、Eclipse的电脑

2. 教学课件PPT

3. 教材:《Java程序设计基础教程(慕课版)》刘刚 刘伟 人民邮电出版社

教学准备

作业设计

9.编写一个产品过期提醒的程序,能够自动根据促销要求在适当的时候进行促销活动

26

教学过程

教学

环节

课前组织

课程

说明

教学内容与过程

(教学内容、教学方法、组织形式、教学手段)

做好课前“5分钟”教学管理(多媒体、实训室),做好上课前的各项准备工作(打开电脑、打开课件、打开软件、打开U盘中的素材位置、打开授课计划、教案等),吸引学生注意力。

【课前说明】

本章着重讲解了日期类Date和日历类Calendar。日期类Date一般作为字符串类型的日期与日历类Calendar的中间对象,日期类Date方便日期的存储和计算。其中SimpleDateFormat是转换字符串类型的日期和日期类型的操作类,该类支持多重格式的日期,例如2017-03-10和2017-03-10 00:00:00类型等,在这两个常用的格式之外,还有其他类型的格式,如yy-MM-dd、yy/MM/dd等。

【目的】

使学生从了解本单元的学习目标、学习重点、考评方式等方面明确学习本单元知识的要求和目标。

课程

内容

描述

十一、 讲解Date类的使用

Date类的无参构造方法是将当前系统毫秒值传入进行初始化的,Date类还有一个根据传入的毫秒值获取日期对象的构造函数,无参构造方法就是将系统当前毫秒值作为毫秒值传入该构造函数实现的。

十二、 讲解日历类Calendar的使用

Calendar类型是对日期的计算操作,其本身可以由Date类型来设置需要进行计算的原点时间,同时也能快速地转换成Date类型的对象并输出。因为编程语言大多以0为初始值,所以Calendar类中的一月份的数字值实际上是0。由于西方国家认为星期日是一个星期的开始,所以,SUNDAY对应的数字是1,而MONDAY对应的数字是2,其他以此类推。

案例:

1. 当前时间与计算机元年

public class ComputerTimeDemo {

public static void main(String[] args) throws ParseException {

Date day = new Date(0); // 获取时间原点

long time = tTimeMillis(); // 获取当前时间相较于时间原点的毫秒数

Date date = new Date(time); // 获取Date类型的对象,时间默认为当前时间

// Date类型的该方法已经被废弃,不建议使用,但为了演示方便,暂且使用

n("当前时间:" + leString());

n("计算机时间原点:" + leString());

long between = e() - e();

n("系统当前时间与计算机时间原点的毫秒值;" + between);

n("当前时间与原点时间的差值与系统获取的当前毫秒值的差值:" + (time - between));

}

}

2. 万年历

27

public class MonthlyCalendarDemo {

// 每个星期的星期

static final String[] weekDays = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};

public static void main(String[] args) {

Scanner scan = new Scanner(); // 获取从标准输入中读取数据的Scanner对象

int counter = 0;

n("请输入年份:");

int year = t();

n("请输入月份:");

int month = t() - 1; // 获取月份

// 以指定的年份、月份和该月份的第一天作为开始创建对象

GregorianCalendar gCale = new GregorianCalendar(year, month, 1);

// 获取当前月份的总天数

int totalDay = ualMaximum(_OF_MONTH);

int startWeekDay = (_OF_WEEK) - 1;

for (String weekDay : weekDays) {

(weekDay + " "); // 三个空格

}

n(); // 换行

for (counter = 0 ; counter < startWeekDay ; counter++) {

(" "); // 七个空格

}

for (int day = 1 ; day < totalDay ; day++) {

(" %2d ", day);

counter++;

if(counter % 7 == 0) {

n(); // 换行

}

}

}

}

课堂

实训

7. 编写一个产品过期提醒的程序,能够自动根据促销要求在适当的时候进行促销活动,并在产品过期前10天提醒产品即将过期。产品的过期时间由产品的生产日期及保质期来确定。程序需要正确地计算产品的到期日期,并且根据到期日期来执行促销活动和过期提醒。

28

总结

评价

通过学习,学生能够掌握Date类和Calendar类的具体用法。

本节课主要运用案例教学法,通过对Date类和Calendar类理解,掌握Date类和Calendar类的基本特点,深入探讨Date类和Calendar类的使用方法,通过实例的方法加强Date类和Calendar类的理解,达到能够独立熟练运用Date类和Calendar类来解决实际问题的能力。教学评价方式以小组为单位,以完成案例的质量为评价标准,形成任务驱动,小组协作,质量与速度并存的课堂评价方式 ,促进学生的自主、创新学习的方式 。

29

第9章 反射、异常和枚举

课程名称

任务名称

项目性质

授课班级

Java程序设计基础教程

(慕课版)

反射、异常和枚举

项目名称

课时

反射、异常和枚举

6

□演示性 □验证性 □设计性 √综合性

能力目标:

授课日期

授课地点

1. 具备使用反射解决问题的能力

2. 具备使用异常解决问题的能力

3. 具备使用枚举解决问题的能力

教学目标

知识目标:

8. 掌握反射的应用

9. 掌握异常和枚举的应用

素质目标:

1. 培养学生知识掌握和技能运用能力

2. 培养学生团结合作、互帮互助的能力;

1. 任务描述

2. 任务展示与实现

(1)从源对象复制属性到目标对象属性中去,需要以目标对象属性为准,源对象中的多余属性不做考虑

(2)目标对象属性在源对象中不存在的,不进行复制

(3)目标属性类型与源目标属性类型不一致的,也默认为属性不存在,不进行考虑

3. 教师讲解本任务涉及的知识点

4. 任务小结

教学内容

教学重点

教学难点

7. 反射的应用

8. 异常的应用

1. 反射的应用

2. 异常捕获顺序

1. 装有JDK、Eclipse的电脑

2. 教学课件PPT

3. 教材:《Java程序设计基础教程(慕课版)》刘刚 刘伟 人民邮电出版社

教学准备

10.

作业设计

利用反射技术,获取目标对象的域方法,获取其setter方法的参数类型和域字段名称,获取源对象中的对应域字段的getter方法,判断域的类型是否一致,如果一致,则进行值复制

30

教学过程

教学

环节

课前组织

课程

说明

教学内容与过程

(教学内容、教学方法、组织形式、教学手段)

做好课前“5分钟”教学管理(多媒体、实训室),做好上课前的各项准备工作(打开电脑、打开课件、打开软件、打开U盘中的素材位置、打开授课计划、教案等),吸引学生注意力。

【课前说明】

本章主要介绍了反射、异常和枚举3个知识点。反射,是通过类名找到类信息并对其进行处理的一种技术,这种技术的优点是可以在运行时去执行这些逻辑,简化了代码,方便了程序的开发,反射在目前流行的Spring框架中应用广泛。Spring的对象管理就是通过反射实现的。异常是Java的一大开发利器,如果说垃圾回收机制让开发者真正摆脱了内存泄露问题的话,那么异常则是让开发者摆脱了通篇阅读代码找问题的无奈。Java的异常栈信息会打印出问题出现的代码所在类和异常抛出的行数,同时也会提示开发者异常是因何产生的。这种完善的异常提醒机制让问题的发现与解决更加高效。枚举是Java中一个特殊的类型,它具有“小而美”的特点,枚举的使用,让代码的阅读更加容易;同时,通过使用枚举也能避免一些因疏忽或者其他原因导致的小问题。

【目的】

使学生从了解本单元的学习目标、学习重点、考评方式等方面明确学习本单元知识的要求和目标。

课程

内容

描述

十三、 讲解反射的使用

反射(Reflection)是Java程序开发语言的特征之一,它允许Java在运行时添加新的类或是创建指定类的对象,并将属性值动态地赋值给对象。

十四、 讲解异常的使用

Java的异常处理是面向对象的,也就是可以将异常当作对象来处理。当程序运行过程中出现了异常情况时,一个异常就产生了并交给运行时系统,运行时系统通过寻找对应的代码来处理这个异常,从而确保系统不会宕机或对操作系统造成损害。

十五、 讲解枚举的使用

枚举的关键字是enum。该关键字可以将一组具有别名的值的有限集合创建成一种新的类型。

案例:

1. Java的String类的反射

public class SimpleReflDemo {

public static void main(String[] args) {

try {

Class c = e("");

Method[] ms = laredMethods(); // 获取类中声明的方法

for (Method m : ms) {

n(m);

}

} catch (ClassNotFoundException e) {

tackTrace();

}

}

31

}

2. 异常的捕获顺序

public class CatchOrderDemo {

public static void main(String[] args) {

String[] strs = new String[]{"111"};

try {

String str = strs[3];

} catch (ArrayIndexOutOfBoundsException e) {

n("IndexOutOfBoundsException 异常被捕获!");

} catch (Exception e) {

n("Exception 异常被捕获!");

}

}

}

课堂

实训

8. 在Spring框架中,有一个BeanUtils类,专门用于两个对象间相同属性域的值的复制,一般用于业务对象和数据库对象的转换,其实现也是借助了反射技术。利用反射技术,获取目标对象的域方法,获取其setter方法的参数类型和域字段名称,获取源对象中的对应域字段的getter方法,判断域的类型是否一致,如果一致,则进行值复制。

总结

评价

通过学习,学生能够掌握反射、异常和枚举的具体用法。

本节课主要运用案例教学法,通过对反射、异常和枚举的理解,掌握反射、异常和枚举的基本特点,深入探讨反射、异常和枚举的使用方法,通过实例的方法加强反射、异常和枚举的理解,达到能够独立熟练运用反射、异常和枚举来解决实际问题的能力。教学评价方式以小组为单位,以完成案例的质量为评价标准,形成任务驱动,小组协作,质量与速度并存的课堂评价方式 ,促进学生的自主、创新学习的方式 。

32

第10章 并发编程

课程名称

任务名称

项目性质

授课班级

Java程序设计基础教程

(慕课版)

并发编程

项目名称

课时

并发编程

6

□演示性 □验证性 □设计性 √综合性

能力目标:

1. 具备创建线程的能力

2. 具备调度线程的能力

授课日期

授课地点

3. 具备使用多线程解决问题的能力

知识目标:

教学目标

10. 了解进程和线程的区别和联系

11. 掌握线程的创建和调度方法

12. 掌握多线程的应用

素质目标:

1. 培养学生知识掌握和技能运用能力

2. 培养学生团结合作、互帮互助的能力;

1. 任务描述

2. 任务展示与实现

(1)需要处理的是文件夹,

教学内容

(2)如果当前文件夹下有子文件夹,则将子文件夹当作另一个任务,加入到处理任务链表中来

(3)汇总所有任务的计算结果,即指定文件夹的总大小

3. 教师讲解本任务涉及的知识点

4. 任务小结

教学重点

教学难点

9. 线程的创建

10. 线程的调度

3. 继承Thread类

4. 同步与互斥

1. 装有JDK、Eclipse的电脑

2. 教学课件PPT

3. 教材:《Java程序设计基础教程(慕课版)》刘刚 刘伟 人民邮电出版社

教学准备

作业设计

11.

多线程获取指定目录文件大小,并计算耗时

33

教学过程

教学

环节

课前组织

课程

说明

教学内容与过程

(教学内容、教学方法、组织形式、教学手段)

做好课前“5分钟”教学管理(多媒体、实训室),做好上课前的各项准备工作(打开电脑、打开课件、打开软件、打开U盘中的素材位置、打开授课计划、教案等),吸引学生注意力。

【课前说明】

本章讲解了进程和线程的区别和联系、线程的创建方式、线程的调度问题,梳理了线程的5种状态:新建、就绪、阻塞以及运行状态和死亡状态,涉及线程的休眠、同步和死锁等问题也都做了讲解;并讲解了线程池技术和带有返回值的Callable对象和接收返回值的Future对象,对Future对象的isDone()方法和get()方法做了简单介绍。

【目的】

使学生从了解本单元的学习目标、学习重点、考评方式等方面明确学习本单元知识的要求和目标。

课程

内容

描述

十六、 讲解线程的创建方法

线程的创建方式,一种是继承Thread类,另一种是实现Runnable接口,继承Thread类后可以直接调用start()方法启动线程,而实现Runnable接口则需要使用Thread类进行包装后方可调用start()方法。

十七、 讲解线程的调度方法

梳理了线程的5种状态:新建、就绪、阻塞以及运行状态和死亡状态,涉及线程的休眠、同步和死锁等问题也都做了讲解。

十八、 讲解多线程的使用

Java中的线程池技术是运行场景最多的并发框架,几乎所有需要异步或者并发执行任务的程序都可以使用线程池技术。合理使用线程池技术可以降低线程创建和销毁造成的消耗,提高相应速度和提高线程的可管理性。Callable用法和Runnable类似,只不过调用的是call()方法,而不是run()方法,该方法有一个泛型返回值类型,可根据需要指定。

案例:

Thread实现多线程

public class ThreadDemo {

public static void main(String[] args) {

for (int i = 0 ; i < 10 ; i++) {

// 创建10个MyThread类的对象,并运行

MyThread thread = new MyThread();

();

}

}

}

34

// 继承了Thread类的类

class MyThread extends Thread {

@Override

public void run() { // 重写父类的run方法

for (int i = 0 ; i < 3 ; i++) { // 循环打印输出信息

n(tThread().getName() + " - 正在执行!");

}

}

}

计划任务线程池

public class SchedulePoolDemo {

public static void main(String[] args) {

ScheduledExecutorService es = eduledThreadPool(1); // 创建一个计划任务线程池,参数表示线程池的个数

leAtFixedRate(new Runnable() {

@Override

public void run() {

n("每1秒执行一次:" + tTimeMillis());

}

}, 2, 1, S);

}

}

课堂

实训

9. 多线程获取指定目录文件大小,并计算耗时。多线程计算文件大小,可以将一个文件夹当作一个子任务处理,最终每个任务都是一个个文件,统计每个文件的大小,递归累加即可完成任务。如果是单线程,则是递归计算,每次计算完一个只有文件类型的文件夹后返回父级目录继续计算下一个文件或者文件夹。相比而言,多线程的多个任务同时计算势必在速度上占优势。在JDK1.7之后,Java推出了一个Fork/Join框架,可以有效分割任务,最后汇总,极大地简化了多线程的使用。本次动手任务主要使用Fork/Join框架来实现多线程的文件大小计算。

35

总结

评价

通过学习,学生能够掌握进程和线程的区别和联系、线程的创建方式、线程的调度问题以及多线程的相关用法。

本节课主要运用案例教学法,通过对进程和线程的理解,掌握进程和线程的基本特点,深入探讨进程和线程的使用方法,通过实例的方法加强进程和线程的理解,达到能够独立熟练运用进程和线程来解决实际问题的能力。教学评价方式以小组为单位,以完成案例的质量为评价标准,形成任务驱动,小组协作,质量与速度并存的课堂评价方式 ,促进学生的自主、创新学习的方式 。

36

第11章 网络通信协议

课程名称

任务名称

项目性质

授课班级

Java程序设计基础教程

(慕课版)

网络通信协议

项目名称

课时

网络通信协议

4

□演示性 □验证性 □设计性 √综合性

能力目标:

授课日期

授课地点

1. 具备使用TCP通信解决问题的能力

2. 具备使用UDP通信解决问题的能力

知识目标:

教学目标

13. 掌握TCP通信的应用

14. 掌握UDP通信的应用

素质目标:

1. 培养学生知识掌握和技能运用能力

2. 培养学生团结合作、互帮互助的能力;

1. 任务描述

2. 任务展示与实现

(1)使用一个主线程进行数据的发送功能,另一个线程进行数据接收的功能。

教学内容

(2)客户端需要将自己的监听端口告诉服务端,同时服务端能够存储这些信息并向客户端广播消息

3. 教师讲解本任务涉及的知识点

4. 任务小结

教学重点

教学难点

11. TCP通信的应用

12. UDP通信的应用

5. TCP通信的应用

6. UDP通信的应用

1. 装有JDK、Eclipse的电脑

2. 教学课件PPT

3. 教材:《Java程序设计基础教程(慕课版)》刘刚 刘伟 人民邮电出版社

教学准备

作业设计

12.

模仿编写一个聊天室,实现聊天室消息的发送和接收功能,并将接收的数据显示出来

37

教学过程

教学

环节

课前组织

课程

说明

教学内容与过程

(教学内容、教学方法、组织形式、教学手段)

做好课前“5分钟”教学管理(多媒体、实训室),做好上课前的各项准备工作(打开电脑、打开课件、打开软件、打开U盘中的素材位置、打开授课计划、教案等),吸引学生注意力。

【课前说明】

本章着重讲解了Java中有关网络编程的TCP通信和UDP通信。首先对TCP通信和UDP通信的概念进行了讲解,同时对通信过程中使用到的IP地址和端口号等名词进行了知识补充;然后着重讲解了Java网络编程的重点即TCP通信中的Socket通信,这是Java编程中机器进行通信的基础;最后主要讲解了UDP通信中的DatagramPacket和DatgramSocket类,并给出了使用案例,同时,模拟了网上聊天室,实现了一个简单的聊天室。

【目的】

使学生从了解本单元的学习目标、学习重点、考评方式等方面明确学习本单元知识的要求和目标。

课程

内容

描述

十九、 讲解网络通信协议的概念

TCP/IP协议(Transmission Control Protocol/Internet Protocol)也叫做传输控制/网际协议,又叫做网络通信协议。TCP/IP协议是英特网中使用的基本通信协议。UDP是User Datagram Protocol的简称,全称是用户数据报协议,中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。

二十、 讲解TCP通信

当两个程序想要通信的时候,可以使用Socket类建立套接字连接,呼叫的一方成为客户机,接收的一方成为服务器,服务器使用的套接字是ServerSocket。Socket套接字和ServerSocket套接字使用的IP和端口号必须相同,端口号在服务器端和客户机端必须一致才能通信。

二十一、 讲解UDP通信

UDP通信相关的处理类是DatagramPacket类,该类位于包下。该类在接收方和发送方创建的对象是不同的,当发送的时候,用户不仅要将需要发送的数据告诉DatagramPacket,还需要将数据发送的地址和端口号告诉DatagramPacket对象;接收方则只需要声明需要获取的数据即可。

案例:

URL和URLConnection的使用

public class URLDemo {

public static void main(String[] args) {

try {

URL url = new URL("/");

n("默认端口是:" + aultPort());

// 打开一个URLConnection类对象

URLConnection urlConn = nnection();

38

// 获取请求头

Map> map = derFields();

for (Entry> entry : et()) {

n(() + " : " + ue());

}

n("content-type :" + tentType());

n("是否获取用户缓存:" + aultUseCaches());

} catch (MalformedURLException e) {

tackTrace();

} catch (IOException e) {

tackTrace();

}

}

}

课堂

实训

10. QQ和微信现在已经成了人们无法离开的通信交流软件,它们方便了人们的交流和沟通。通过对Java的学习,再结合多线程和UDP通信,聊天软件的神秘面纱就被揭开了,真正的聊天软件的核心其实就非常好理解了。结合已经学习的内容,模仿编写一个聊天室,实现聊天室消息的发送和接收功能,并将接收的数据显示出来。

总结

评价

通过学习,学生能够掌握TCP通信和UDP通信的具体用法。

本节课主要运用案例教学法,通过对TCP通信和UDP通信的理解,掌握TCP通信和UDP通信的基本特点,深入探讨TCP通信和UDP通信的使用方法,通过实例的方法加强TCP通信和UDP通信的理解,达到能够独立熟练运用TCP通信和UDP通信来解决实际问题的能力。教学评价方式以小组为单位,以完成案例的质量为评价标准,形成任务驱动,小组协作,质量与速度并存的课堂评价方式 ,促进学生的自主、创新学习的方式 。

39

第12章 综合实训

课程名称

任务名称

项目性质

授课班级

Java程序设计基础教程

(慕课版)

综合实训

项目名称

课时

综合实训

4

□演示性 □验证性 □设计性 √综合性

能力目标:

授课日期

授课地点

1. 具备使用JDBC解决问题的能力

2. 具备使用日历、测试、事务解决问题的能力

3. 具备使用Maven和Tomcat解决问题的能力

教学目标

知识目标:

15. 掌握JDBC的应用

16. 掌握Maven和Tomcat的应用

素质目标:

1. 培养学生知识掌握和技能运用能力

2. 培养学生团结合作、互帮互助的能力;

1. 任务描述

2. 任务展示与实现

(1)搭建基础项目

教学内容

(2)编写账户注册及登录代码

(3)编写转载功能代码

3. 教师讲解本任务涉及的知识点

4. 任务小结

教学重点

教学难点

13. JDBC库的应用

14. 测试的应用

7. JDBC库的应用

8. 测试的应用

1. 装有JDK、Eclipse、Tomcat Web的电脑

2. 教学课件PPT

3. 教材:《Java程序设计基础教程(慕课版)》刘刚 刘伟 人民邮电出版社

教学准备

作业设计

13.

设计一个简易的网上自主银行系统

40

教学过程

教学

环节

课前组织

课程

说明

教学内容与过程

(教学内容、教学方法、组织形式、教学手段)

做好课前“5分钟”教学管理(多媒体、实训室),做好上课前的各项准备工作(打开电脑、打开课件、打开软件、打开U盘中的素材位置、打开授课计划、教案等),吸引学生注意力。

【课前说明】

本章着重讲解JDBC和Web项目创建。首先讲解JDBC的使用,通过数据库的链接创建和数据操作等代码,讲解了数据库的使用;其次,介绍日志的级别,并在简易网上银行系统中进行了配置和使用;再次介绍了JUnit的功能测试,通过案例讲解如何进行JUnit测试,JUnit框架的快捷测试可以帮助开发者快速验证功能点是否实现、是否存在漏洞等,方便了功能点的开发和维护工作;最后介绍事务。并通过对Maven和Tomcat的简单介绍,整合Spring和Mybatis完成一个Maven项目的创建,并实现了简单的登录操作和转账操作,大致讲解了一个Web项目的组成和功能的添加。

【目的】

使学生从了解本单元的学习目标、学习重点、考评方式等方面明确学习本单元知识的要求和目标。

课程

内容

描述

二十二、 讲解JDBC的使用

JDBC全称是Java数据库连接(Java Database Connectivity),它是一套用于执行SQL语句的Java

API。通过该API,开发者可以快速连接到关系型数据库,并使用SQL实现对数据库中数据的增、删、改、查功能。

二十三、 讲解日志、测试、事务的使用

日志的作用非常巨大,一般项目在运行中出现了问题,因为无法像本地一样进行测试,只能通过日志文件分析和解决问题; JUnit框架的快捷测试可以帮助开发者快速验证功能点是否实现、是否存在漏洞等,方便了功能点的开发和维护工作;只要理解了事务的特性,在开发过程中把握好事务的边界,就能很好地对其进行处理,同时Spring也提供了对事务的注解,简化了开发工作。

二十四、 讲解实训案例

通过对Maven和Tomcat的简单介绍,整合Spring和Mybatis完成了一个Maven项目的创建,并实现简单的登录操作和转账操作,讲解一个Web项目的组成和功能的添加。

41

课堂

实训

11. 简易网上银行系统是具有账户查询、账户存取款和转账业务的简单网上自主银行。该系统有用户登录系统和账户操作系统,其中用户登录系统有用户注册和用户登录两个模块,账户操作系统则有账户查询、账户存取款和账户转账业务模块,每个模块负责一个功能,共同组成一个简易的网上自主银行系统。

总结

评价

通过学习,学生能够掌握JDBC和Web项目的具体用法。

本节课主要运用案例教学法,通过对JDBC和Web项目的理解,掌握JDBC和Web项目的基本特点,深入探讨JDBC和Web项目的使用方法,通过实例的方法加强JDBC和Web项目的理解,达到能够独立熟练运用反JDBC和Web项目来解决实际问题的能力。教学评价方式以小组为单位,以完成案例的质量为评价标准,形成任务驱动,小组协作,质量与速度并存的课堂评价方式 ,促进学生的自主、创新学习的方式 。

42


本文标签: 使用 方法 任务 实现 文件