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