资源描述
《Java2入门》
教学设计
课程名称: Java2入门
授课年级: 一年级
授课学期: 2015-2016学年第一学期
教师姓名: 刘晓英
2015年09月09日
课题名称
Java编程基础
计划学时
8 课时
内容分析
学做任何事情,都要打好基础。同样地,要掌握并熟练使用Java语言,必须充分了解Java语言中的基础知识。本章将针对Java的基本语法、Java中的变量、运算符、方法、结构语句以及数组进行详细地讲解。
教学目标及基本要求
要求学生掌握Java的基本语法、掌握Java中常量和变量的使用、掌握Java流程控制语句的使用、掌握方法的定义和重载、掌握数组的定义与使用。
重点及措施
教学重点:Java变量、选择结构语句、循环结构语句、方法的重载、数组的定义与使用。
难点及措施
教学难点:选择结构语句、循环结构语句。
教学方式
教学采用教师课堂讲授为主,使用教学PPT讲解。
教
学
过
程
第一课时
(Java代码的基本格式、注释、标识符、关键字和常量)
l Java代码的基本格式
l Java中的代码分为结构定义语句和功能执行语句,其中,结构定义语句用于声明一个类或方法,功能执行语句用于实现具体的功能。每条功能执行语句的最后都必须用分号(;)结束。
l Java语言是严格区分大小写的。
l 在编写程序代码时,尽量做到整齐、美观、层次清晰,使用代码保持一种良好的格式,提高可读性。
l Java中的注释
² 单行注释
单行注释是对程序中的某一行代码进行解释,用符号“//”表示。“//”后面为被注释的内容,具体示例如下:
int c = 10; // 定义一个整型变量
² 多行注释
多行注释以符号“/*”开头,以符号“*/”结尾,具体示例如下:
/* int c = 10;
int x = 5; */
² 文档注释
以“/**”开头,并在注释内容末尾以“*/”结束。文档注释是对代码的解释说明,可以使用javadoc命令将文档注释提取出来生成帮助文档。
l Java中的标识符
² 什么是标识符
在编程过程中,经常需要在程序中定义一些符号来标记一些名称,如,包名、类名、方法名、参数名、变量名等,这些符号被称为标识符。
² 定义标识符的规则
l 包名所有字母一律小写。例如:cn.itcast.test。
l 类名和接口名每个单词的首字母都要大写。
例如:ArrayList、Iterator
l 常量名字母都大写,单词之间用下划线连接。
例如:DAY_OF_MONTH
l 变量名和方法名的第一个单词首字母小写,从第二个单词开始每个单词首字母大写。
例如:lineNumber、getLineNumber
l 在程序中,应该尽量使用有意义的英文单词来定义标识符,使得程序便于阅读。
例如:使用userName表示用户名,passWord表示密码
l Java中的关键字
关键字是编程语言里事先定义好并赋予了特殊含义的单词,也称作保留
字。下列是Java中所有的关键字。
l Java中的常量
² 整型常量
整型常量是整数类型的数据,有二进制、八进制、十进制和十六进制4种表示形式,具体表示形式如下:
l 二进制:由数字0 和1 组成的数字序列。例如:0001101100
l 八进制:以0开头并且其后由0 ~7范围的整数组成的数字序列。
l 十进制:由数字0~9范围的整数组成的数字序列。如:198。
l 十六进制:以0x或0X开头并其后由0~9、A~F组成的数字序列。
² 浮点数常量
浮点数常量就是在数学中用到的小数,分为float单精度浮点数和double双精度浮点数两种类型。单精度浮点数后面以F或f结尾,双精度浮点数则以D或d结尾。具体示例如下:
2e3f 3.6d 0f 3.84d 5.022e+23f
² 字符常量
字符常量用于表示一个字符,字符常量要用一对英文半角格式的单引号(' ')引起来,具体示例如下:
'a' '1' '&' '\r' '\u0000'
注意:'\u0000'表示一个空白字符,即在单引号之间没有任何字符。
² 字符串常量
字符串常量用于表示一串连续的字符,一个字符串常量要用一对英文半角格式的双引号(" ")引起来,具体示例如下:
"HelloWorld" "123" "Welcome \n XXX" ""
² 布尔常量
布尔常量即布尔型的两个值true和false,用于区分一个事物的真与假。
² null常量
null常量只有一个值null,表示对象的引用为空。
第二课时
(变量的定义、变量的数据类型、变量的类型转换、变量的作用域)
l 变量的定义
在程序运行期间,随时可能产生一些临时数据,应用程序会将这些数据保存在一些内存单元中,每个内存单元都用一个标识符来标识。这些内存单元我们称之为变量,具体示例如下:
int x = 0,y;
y = x+3;
第一行代码的作用是定义了两个变量x和y,相当于分配了两块内存单元,变量x和y在内存中的状态如图:
第二行代码的作用是为变量赋值,在执行第二行代码时,程序首先取出变量x的值,与3相加后,将结果赋值给变量y,此时变量x和y在内存中的状态如图:
l 变量的数据类型
² 数据类型分类
² 整数类型变量
整数类型变量用来存储整数数值,即没有小数部分的值。整数类型分
为4种不同的类型,所占存储空间的大小以及取值范围如下表所示:
类型名
占用空间
取值范围
byte
8位(1个字节)
-27 ~ 27-1
short
16位(2个字节)
-215 ~ 215-1
int
32位(4个字节)
-231 ~ 231-1
long
64位(8个字节)
-263 ~ 263-1
² 浮点数类型变量
浮点数类型分为两种:单精度浮点数(float)、双精度浮点数(double),
两种浮点数所占存储空间的大小以及取值范围如下表所示:
类型名
占用空间
取值范围
float
32位(4个字节)
1.4E-45 ~ 3.4E+38,-1.4E-45 ~ -3.4E+38
double
64位(8个字节)
4.9E-324 ~1.7E+308, -4.9E-324 ~ -1.7E+308
² 字符类型变量
字符类型变量用于存储一个单一字符,在Java中用char表示。为字符类型变量赋值,具体代码如下:
char c = 'a'; // 为一个char类型的变量赋值字符'a'
char ch = 97; // 为一个char类型的变量赋值整数97,相当于赋值字符'a'
² 布尔类型变量
布尔类型变量用来存储布尔值,在Java中用boolean表示,该类型的变量只有两个值,即true和false。具体示例如下:
boolean flag = false; // 声明一个boolean类型的变量,初始值为false
flag = true; // 改变flag变量的值为true
l 变量的类型转换
² 自动类型转换
自动类型转换是两种数据类型在转换的过程中不需要显式地进行声明。实现自动类型转换,必须同时满足两个条件,第一是两种数据类型彼此兼容,第二是目标类型的取值范围大于源类型的取值范围。例如:
byte b = 3;
int x = b; // 程序把byte类型的变量b转换成了int类型,无需特殊声明
² 强制类型转换
当两种类型彼此不兼容,或者目标类型取值范围小于源类型时,自动类型转换无法进行,这时,需要进行强制类型转换,具体格式如下:
目标类型 变量 = (目标类型)值
l 变量的作用域
变量需要在它的作用范围内才可以被使用,作用范围称为变量的作用域。接下来通过一个代码片段来分析变量的作用域,具体如下:
上面的代码中,有两层大括号。其中,外层大括号所标识的代码区域就是变量x的作用域,内层大括号所标识的代码区域就是变量y的作用域。
第三课时
(算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符及优先级)
l 算术运算符
Java中的算术运算符就是用来处理四则运算的符号,下表列出Java中的算术运算符及其用法。
运算符
运算
范例
结果
+
正号
+3
3
-
负号
b=4;-b;
-4
+
加
5+5
10
-
减
6-4
2
乘
3*4
12
/
除
5/5
1
%
求余数
7%5
2
++
自增(前)
a=2;b=++a;
a=3;b=3;
++
自增(后)
a=2;b=a++;
a=3;b=2;
--
自减(前)
a=2;b=--a
a=1;b=1;
--
自减(后)
a=2;b=a--
a=1;b=2;
l 赋值运算符
赋值运算符的作用就是将常量、变量或表达式的值赋给某一个变量。下表列出了Java中的赋值运算符及其用法。
运算符
运算
范例
结果
=
赋值
a=3;b=2;
a=3;b=2;
+=
加等于
a=3;b=2;a+=b;
a=5;b=2;
-=
减等于
a=3;b=2;a-=b;
a=1;b=2;
*
乘等于
a=3;b=2;a*=b;
a=6;b=2;
/=
除等于
a=3;b=2;a/=b;
a=1;b=2;
%=
模等于
a=3;b=2;a%=b;
a=1;b=2;
l 比较运算符
比较运算符用于对两个数值或变量进行比较,其结果是一个布尔值。下表列出了Java中的比较运算符及其用法。
运算符
运算
范例
结果
==
相等于
4 == 3
false
!=
不等于
4 != 3
true
<
小于
4 < 3
false
>
大于
4 > 3
true
<=
小于等于
4 <=
false
>=
大于等于
4 >= 3
true
l 逻辑运算符
逻辑运算符用于对布尔型的数据进行操作,其结果仍是一个布尔型。下表列出了Java中的逻辑运算符及其用法。
运算符
运算
范例
结果
&
按位与
0 & 0
0
0 & 1
0
1 & 1
1
1 & 0
0
|
按位或
0 | 0
0
0 | 1
1
1 | 1
1
1 | 0
1
~
取反
~0
1
~1
0
^
按位异或
0 ^ 0
0
0 ^ 1
1
1 ^ 1
1 ^ 0
1
<<
左移
00000010<<2
00001000
10010011<<2
01001100
>>
右移
01100010>>2
00011000
11100010>>2
11111000
>>>
无符号右移
01100010>>>2
00011000
11…11100010>>>2
0011…111000
l 运算符的优先级
在对一些比较复杂的表达式进行运算时,要明确表达式中所有运算符参
与运算的先后顺序,我们把这种顺序称作运算符的优先级。下表列出了Java中运算符的优先级,数字越小优先级越高。
优先级
运算符
1
. [] ()
2
++ -- ~ ! (数据类型)
3
* / %
4
+ -
5
<< >> >>>
6
< > <= >=
7
== !=
8
&
9
^
10
|
11
&&
12
||
13
?:
14
= *= /= %= += -= <<= >>= >>>= &= ^= |=
第四课时
(if语句、switch语句、while语句、do while语句)
l if条件语句
² if语句
if语句是指如果满足某种条件,就进行某种处理。具体语法格式如下:
if (条件语句){
代码块
}
² If…else语句
if…else语句是指如果满足某种条件,就进行某种处理,否则就进行另一种处理。具体语法格式如下:
if (判断条件){
执行语句1
……
}else{
执行语句2
……
}
² if…else if…else语句
if…else if…else语句用于对多个条件进行判断,进行多种不同的处理。具体语法格式如下:
if (判断条件1) {
执行语句1
} else if (判断条件2) {
执行语句2
}
...
else if (判断条件n) {
执行语句n
} else {
执行语句n+1
}
l switch条件语句
switch 条件语句也是一种很常用的选择语句,它只能针对某个表达式的值作出判断,从而决定程序执行哪一段代码。基本语法如下:
switch (表达式){
case 目标值1:
执行语句1
break;
case 目标值2:
执行语句2
break;
......
case 目标值n:
执行语句n
break;
default:
执行语句n+1
break;
}
l while循环语句
while语句会反复地进行条件判断,只要条件成立,{}内的执行语句就会执行,直到条件不成立,while循环结束。while循环语句的语法结构如下:
while(循环条件){
执行语句
………
}
l do while循环语句
do…while循环语句和while循环语句功能类似,其语法结构如下:
do {
执行语句
………
} while(循环条件);
第五课时
(for循环语句、循环嵌套、跳转语句)
l for循环语句
for循环语句是最常用的循环语句,一般用在循环次数已知的情况下。for循环语句的语法格式如下:
for(初始化表达式; 循环条件; 操作表达式){
执行语句
………
}
上述的语法格式,如果用①表示初始化表达式、②表示循环条件、③表示操作表达式、④表示循环体,通过序号来具体分析for循环的执行流程。具体如下:
for(① ; ② ; ③){
④
}
第一步,执行①
第二步,执行②,如果判断结果为true,执行第三步;否则,执行第五步
第三步,执行④
第四步,执行③,然后重复执行第二步
第五步,退出循环
l 循环嵌套
嵌套循环是指在一个循环语句的循环体中再定义一个循环语句的语法结构。例如,使用“*”打印直角三角形。
public class Example15 {
public static void main(String[] args) {
int i, j; // 定义两个循环变量
for (i = 1; i <= 9; i++) { // 外层循环
for (j = 1; j <= i; j++) { // 内层循环
System.out.print("*"); // 打印*
}
System.out.print("\n"); // 换行
}
}
}
在案例中定义了两层for循环,分别为外层循环和内层循环,外层循环用于控制打印的行数,内层循环用于打印“*”,每一行的“*”个数逐行增加,最后输出一个直角三角形。
l 跳转语句
² break语句
在switch条件语句和循环语句中都可以使用break语句。当它出现在switch条件语句中时,作用是终止某个case并跳出switch结构。当它出现在循环语句中,作用是跳出循环语句,执行后面的代码。
² continue语句
continue语句用在循环语句中,它的作用是终止本次循环,执行下一次循环。
第六课时
(方法、方法的重载和递归、数组的定义、
数组的常见操作、多维数组)
l 方法的定义
在Java中,声明一个方法的具体语法格式如下:
修饰符 返回值类型 方法名([参数类型 参数名1,参数类型 参数名2,......]){
执行语句
………
return 返回值;
}
l 方法的重载
Java允许在一个程序中定义多个名称相同的方法,但是参数的类型或个数必须不同,这就是方法的重载。例如,定义了三个同名的add()方法,它们的参数个数或类型不同,从而形成了方法的重载。
// 下面的方法实现了两个整数相加
public static int add(int x, int y) {
return x + y;
}
// 下面的方法实现了三个整数相加
public static int add(int x, int y, int z) {
return x + y + z;
}
// 下面的方法实现了两个小数相加
public static double add(double x, double y) {
return x + y;
}
}
l 方法的递归
方法的递归是指在一个方法的内部调用自身的过程,递归必须要有结束条件,不然就会陷入无限递归的状态,永远无法结束调用。例如,使用递归算法计算自然数之和。
public class Example24 {
public static void main(String[] args) {
int sum = getSum(4); // 调用递归方法,获得1~4的和
System.out.println("sum = " + sum); // 打印结果
}
// 下面的方法使用递归实现 求1~n的和
public static int getSum(int n) {
if (n == 1) {
// 满足条件,递归结束
return 1;
}
int temp = getSum(n - 1);
return temp + n;
}
}
l 数组的定义
在Java中,可以使用以下格式来定义一个数组。
int[] x; // 声明一个int[]类型的变量x
x = new int[100]; // 创建一个长度为100的数组
第一行代码 int[] x; 声明了一个变量x,该变量的类型为int[],即一个int类型的数组。变量x会占用一块内存单元,它没有被分配初始值。内存中的状态如下图所示。
第二行代码 x = new int[100]; 创建了一个数组,将数组的地址赋值给变量x。在程序运行期间可以使用变量x来引用数组,这时内存中的状态会发生变化,如下图所示。
l 数组的常见操作
² 数组遍历
遍历数组,打印数组中的元素。
public class Example30 {
public static void main(String[] args) {
int[] arr = { 1, 2, 3, 4, 5 }; // 定义数组
// 使用for循环遍历数组的元素
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]); // 通过索引访问元素
}
}
}
² 数组最值
求数组中元素的最大值。
public class Example31 {
public static void main(String[] args) {
int[] arr = { 4, 1, 6, 3, 9, 8 }; // 定义一个数组
int max = getMax(arr); // 调用获取元素最大值的方法
System.out.println("max=" + max); // 打印最大值
}
static int getMax(int[] arr) {
int max = arr[0];
// 下面通过一个for循环遍历数组中的元素
for (int x = 1; x < arr.length; x++) {
if (arr[x] > max) { // 比较 arr[x]的值是否大于max
max = arr[x]; // 条件成立,将arr[x]的值赋给max
}
}
return max; // 返回最大值max
}
}
² 数组排序
冒泡排序:在冒泡排序的过程中,不断地比较数组中相邻的两个元素,较小者向上浮,较大者往下沉,整个过程和水中气泡上升的原理相似。
第一步,从第一个元素开始,将相邻的两个元素依次进行比较。如果前一个元素比后一个元素大,则交换它们的位置。
第二步,除了最后一个元素,将剩余的元素继续进行两两比较,过程与第一步相似。
第三步,以此类推,持续对越来越少的元素重复上面的步骤,直到没有任何一对元素需要比较为止。
l 多维数组
² 二维数组的定义
l 第一种方式:
int[][] arr = new int[3][4];
l 第二种方式:
int[][] arr = new int[3][];
l 第三种方式:
int[][] arr = {{1,2},{3,4,5,6},{7,8,9}};
第七课时
(总结、测试题、方法的递归)
1、 总结本章内容
2、 通过题库发放相关测试题,检查学生掌握情况。
3、 上机练习主要针对本章中需要重点掌握的知识点,以及在程序中容易出错的内容进行练习,通过上机练习可以考察同学对知识点的掌握情况,对代码的熟练程度。
上机一:(考察知识点为方法的递归)
请按照以下要求设计一个Example02类。
要求如下:
1)计算从1+2+3…+99+100的结果
2)要用到方法的递归
第八课时
(数组的排序)
上机一:(考察知识点为冒泡排序)
请按照以下要求设计一个Example04类。
要求如下:
1)定义数组int[] arr = { 3, 1, 9, 7, 5 };
2)用冒泡排序对数组元素排序
思考题和习题
见教材习题
教
学
后
记
其中专业理论知识内容包括:保安理论知识、消防业务知识、职业道德、法律常识、保安礼仪、救护知识。作技能训练内容包括:岗位操作指引、勤务技能、消防技能、军事技能。
二.培训的及要求培训目的
安全生产目标责任书
为了进一步落实安全生产责任制,做到“责、权、利”相结合,根据我公司2015年度安全生产目标的内容,现与财务部签订如下安全生产目标:
一、目标值:
1、全年人身死亡事故为零,重伤事故为零,轻伤人数为零。
2、现金安全保管,不发生盗窃事故。
3、每月足额提取安全生产费用,保障安全生产投入资金的到位。
4、安全培训合格率为100%。
二、本单位安全工作上必须做到以下内容:
1、对本单位的安全生产负直接领导责任,必须模范遵守公司的各项安全管理制度,不发布与公司安全管理制度相抵触的指令,严格履行本人的安全职责,确保安全责任制在本单位全面落实,并全力支持安全工作。
2、保证公司各项安全管理制度和管理办法在本单位内全面实施,并自觉接受公司安全部门的监督和管理。
3、在确保安全的前提下组织生产,始终把安全工作放在首位,当“安全与交货期、质量”发生矛盾时,坚持安全第一的原则。
4、参加生产碰头会时,首先汇报本单位的安全生产情况和安全问题落实情况;在安排本单位生产任务时,必须安排安全工作内容,并写入记录。
5、在公司及政府的安全检查中杜绝各类违章现象。
6、组织本部门积极参加安全检查,做到有检查、有整改,记录全。
7、以身作则,不违章指挥、不违章操作。对发现的各类违章现象负有查禁的责任,同时要予以查处。
8、虚心接受员工提出的问题,杜绝不接受或盲目指挥;
9、发生事故,应立即报告主管领导,按照“四不放过”的原则召开事故分析会,提出整改措施和对责任者的处理意见,并填写事故登记表,严禁隐瞒不报或降低对责任者的处罚标准。
10、必须按规定对单位员工进行培训和新员工上岗教育;
11、严格执行公司安全生产十六项禁令,保证本单位所有人员不违章作业。
三、 安全奖惩:
1、对于全年实现安全目标的按照公司生产现场管理规定和工作说明书进行考核奖励;对于未实现安全目标的按照公司规定进行处罚。
2、每月接受主管领导指派人员对安全生产责任状的落
展开阅读全文