admin 管理员组文章数量: 1086019
2024年1月11日发(作者:return1l)
备 课 教 案
学年学期
课程名称 JAVA开发技术
主讲教师
授课对象
教学目的
1. 掌握数组的声明、表示及赋值。
2. 理解数组元素的内存分配。
重点:数组的声明、表示及赋值
难点:数组的内存分配
1.教师精讲理论内容
2.多媒体展示教学重点、及程序代码示例
3. 教师演示java数组的代码使用,学生做课堂做练习掌握。
教学重点和难点
教学方法和手段
教学 基 本 内容
导入:
数组的意义介绍:
之前学习内容中,存储、使用的数据都是单独一个个的数据,如25,a。但实际生活和应用中,经常需要使用和处理一连串的数据(一组数据),如全班同学的成绩。在java语言中,就是通过数组来实现对一组数据的存储和使用。
强调:
一个数组可以存放上千万个数据,但是要注意一个数组中必须存放相同数据类型的数据。
如存储都是浮点数类型(学生成绩),或者都是字符串类型(学生姓名)。但是不能在一个数组中既有浮点数据,又有字符串型数据。
备 注
一.数组的声明与内存的分配
要使用Java的数组,必须经过两个步骤:(1)声明数组、(2)分配内存给该数组。
这两个步骤的语法如下:
【格式1 数组的声明与分配内存】
数据类型数组名[ ] ;// 声明一维数组
数组名= new 数据类型[个数] ; // 分配内存给数组
解释:
1.数据类型:
声明数组中存储的数据元素的类型,常见的类型有整型、浮点型与字符型等。
2.数组名:
给这个数组起的名字,以方便该数组的使用。建议使用有意义的名称为数组命名。
3.分配内存:
数组声明后,接下来便是要配置数组所需的内存(数组元素只有放在内存中,才能成为真实的存在,才能使用)。
其中“个数”是告诉编译器,所声明的数组要存放多少个元素,由此来明确需分配多大的内存空间给该数组。
“new”则是命令编译器在内存中真实开辟一块空间供该数组使用。
举例:
int score[] ; // 声明整型数组score
score = new int[3]; // 为整型数组score分配内存空间,其元素个数为3
内存分配情况:(知识扩展,尽量理解)
在上例中的第一行,当声明一个整型数组score时,编译器会分配一块内存给它,即将用来保存指向数组实体的地址,而此时这个变量并没有包含任何内容,如图1所示。
图1 声明整型数组
声明之后,接着要做内存分配的操作,也就是上例中第二行语句。这一行会开辟3个可供保存整数的内存空间,并把此内存空间的参考地址赋给score变量。其内存分配的流程如图2所示。
图2 内存分配
可见数组变量score所保存的并非是数组的实体,而是数组实体的参考地址。
【格式2 声明数组的同时分配内存】
除了用格式4-1的这两行来声明并分配内存给数组之外,也可以用较为简洁的方式,把两行缩成一行来编写,其格式如下:
数据类型数组名[] = new 数据类型[个数]
上述的格式会在声明的同时,即分配一块内存空间,供该数组使用。
举例:
int score[] = new int[11] ;
// 声明一个元素个数为11的整型数组score,同时开辟一块内存空间供其使用
在Java中,由于整数数据类型所占用的空间为4个bytes,而整型数组score可保存的元素有11个,所以上例中占用的内存共有4 * 11 = 44个字节。图3是将数组score的保存用图形来表示,这是以后学习中经常用到的画图思考方式。
图3 数组的保存方式
二.数组中元素的表示方法
想要使用数组里的元素,就需要设法能够表示数组中的各元素。可以利用索引来完成。
Java的数组索引编号由0开始。如上节中的score数组,score[0]即代表socre数组中存放的第1个元素,score[1]代表第2个元素,…,score[10]为数组中第11个元素(也就是最后一个元素)。图4为score数组中元素的表示法及排列方式:
图4 数组中元素的排列
接下来,看一个范例了解程序中数组元素的使用。下面的程序声明了一个数组,长度为3,利用for循环输出数组的内容后,再输出数组的元素个数。
程序示例:TestJava4_
01 // 下面这段程序说明了数组的使用方法
02 public class TestJava4_1
03 {
04 public static void main(String args[])
05 {
06 int i;
07 int a[]; // 声明一个整型数组a
08 a=new int[3]; // 开辟内存空间供整型数组a使用,其元素个数为3
09
10 for(i=0;i<3;i++) // 输出数组的内容
11 ("a["+i+"] = "+a[i]+",");
12
13 n("n数组长度是:"+); // 输出数组长度
14 }
15 }
输出结果:
a[0] = 0, a[1] = 0, a[2] = 0,
数组长度是:3
程序说明:
1、第7行声明整型数组a;第8行开辟了一块内存空间整型数组a使用,其元素个数为3。
2、第10~11行,利用for循环输出数组的内容。由于程序中并未给予数组元素赋值,因此
输出的结果都是0。
3、第13行输出数组的长度。此例中数组的长度是3,即代表数组元素的个数有3个。
知识点:
在Java中取得数组的长度(也就是数组元素的个数)可以用“.length”完成,如下面的格式:
【 格式3 数组长度的取得】
数组名.length
也就是说,要取得TestJava4_1中所声明的数组a的元素个数,只要在数组a的名称后面加上“.length”即可,如下面的程序片段:
; // 取得数组的长度
三 数组初值的赋值
只有在数组中存放具体的数值,数组才有意义。所以我们需要给数组元素进行赋值。
可以直接在声明时就给数组赋初值。格式如下:
【格式4
数组赋初值】
数据类型数组名[] = {初值0,初值1,…,初值n}
解释:
1. 在大括号内的各初值会依序指定给数组的第1、…、n+1个元素。
2. 此方式并不需要将数组元素的个数列出,编译器根据所给出的初值个数来判断数组的长度。
范例:
int day[] = {32,23,45,22,13,45,78,96,43,32}; // 数组声明并赋初值
在上面的语句中,声明了一个整型数组day,虽然没有特别指明数组的长度,但是由于大括号里的初值有10个,编译器会分别依序指定给各元素存放,day[0]为32,day[1]为23,…,day[9]为32。
程序示例:TestJava4_
01 // 数组的赋值,这里采用静态方式赋值
02 public class TestJava4_2
03 {
04 public static void main(String args[])
05 {
06 int i;
07 int a[]={5,6,8}; // 声明一个整数数组a并赋初值
08
09 for(i=0;i<;i++) // 输出数组的内容
10 ("a["+i+"]="+a[i]+",");
11
12 n("n数组长度是:"+);
13 }
14 }输出结果:
a[0]=5, a[1]=6, a[2]=8,
数组长度是:3
除了在声明时就赋初值之外,也可以在程序中为某个特定的数组元素赋值。可以将程序TestJava4_2的第7行更改成下面的程序片段:
int a [] = new int[] ;
a[0] = 5 ;
a[1] = 6 ;
a[2] = 8 ;
四 简单的范例:找出数组元素中的最大值与最小值
由前几节的范例可知,数组的索引就好象饭店房间的编号一样,想要找到某个房间时,就得先找到房间编号!接下来再举一个例子,说明如何将数组里的最大值及最小值列出。
范例:TestJava4_
01 // 这个程序主要是求得数组中的最大值和最小值
02 public class TestJava4_3
03 {
04 public static void main(String args[])
05 {
06 int i,min,max;
07 int A[]={74,48,30,17,62}; // 声明整数数组A,并赋初值
08
09 min=max=A[0];
10 ("数组A的元素包括:");
11 for(i=0;i<;i++)
12 {
13 (A[i]+" ");
14 if(A[i]>max) // 判断最大值
15 max=A[i];
16 if(A[i] 17 min=A[i]; 18 } 19 n("n数组的最大值是:"+max); // 输出最大值 20 n("数组的最小值是:"+min); // 输出最小值 21 } 22 } 输出结果: 数组A的元素包括:74 48 30 17 62 数组的最大值是:74 数组的最小值是:17 程序说明: 1、第6行声明整数变量i做为循环控制变量及数组的索引:另外也声明存放最小值的变量min与最大值的变量max。 2、第7行声明整型数组A,其数组元素有5个,其值分别为74、48、30、17、62。 3、第9行将min与max的初值设为数组的第一个元素。 4、第10~18行逐一输出数组里的内容,并判断数组里的最大值与最小值。 5、第19~20行输出比较后的最大值与最小值。 将变量min与max初值设成数组的第一个元素后,再逐一与数组中的各元素相比。比min小,就将该元素的值指定给min存放,使min的内容保持最小;同样的,当该元素比max大时,就将该元素的值指定给max存放,使max的内容保持最大。for循环执行完,也就表示数组中所有的元素都已经比较完毕,此时变量min与max的内容就是最小值与最大值。 板 书 设 计 备注 思 考 练 习 一.选择题: 1. 下面错误的初始化语句是: str[]=”hello”; str[100]=”hello”; str[]={‘h’,’e’,’l’,’l’,’o’}; D char str[]={“hello”}; 2. 引用数组元素时,数组下标可以是: A.整型常量 B.整型变量 C.整型表达式 D.以上均可 3. 下面程序的运行结果为: main(){ int x=30; int[] numbers = new int[x]; x = 60; n(); } A.30 B.60 C.90 D20 4. 数组a的第三个元素为: A.a(3) B.a[3] C.a(2) D.a[2] 二.程序题: 歌手打分:在歌唱比赛中,共有10位评委进行打分,在计算歌手得分时,去掉一个最高分,去掉一个最低分,然后剩余的8位评委的分数进行平均,就是该选手的最终得分。输入每个评委的评分,求某选手的得分 备注 教 学 反 思 备注
版权声明:本文标题:java数组教案 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1704983962a468566.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论