【教学课件】第4章 数组与方法.ppt

上传人:rrsccc 文档编号:10299565 上传时间:2021-05-06 格式:PPT 页数:22 大小:1.38MB
返回 下载 相关 举报
【教学课件】第4章 数组与方法.ppt_第1页
第1页 / 共22页
【教学课件】第4章 数组与方法.ppt_第2页
第2页 / 共22页
【教学课件】第4章 数组与方法.ppt_第3页
第3页 / 共22页
【教学课件】第4章 数组与方法.ppt_第4页
第4页 / 共22页
【教学课件】第4章 数组与方法.ppt_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《【教学课件】第4章 数组与方法.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第4章 数组与方法.ppt(22页珍藏版)》请在三一文库上搜索。

1、第4章 数组与方法,4.1 一维数组 4.2 二维数组 4.3 方法,4.1 一 维 数 组,4.1.1 一维数组的声明和初始化 一般定义格式如下: array_type array_Name ; 或 array_type array_Name; 上面两种定义方式完全等价。例如: int Array1 ; float Array2; 上面所给的例子只是简单的变量声明,并没有给数组分配内存空间。我们在使用数组前还必须对其进行初始化(即为其分配内存空间)。给数组元素分配内存并为数组元素赋初值的过程称为数组初始化。初始化可分为动态初始化和静态初始化。,1静态初始化 当数组元素的初始化值直接由括在大括

2、号“ ”之间的数据给出时,就称为静态初始化。静态初始化往往和声明结合在一起使用,其格式如下: array_type array_Name=element1, element2; 其中,array_type为数组元素的类型;array_Name为数组名;element1、element2为array_type类型的数组元素初值;方括号“ ”表示可选项。例如: int factorial = 1,2,3,4,5,6,7,8; char ch=a,A,b,B,c,C; double f =12,45.12,88.123;,2动态初始化 动态初始化先用new操作符为数组分配内存,然后才为每一个元素赋初

3、值。其一般格式如下: array_Name = new array_type arraySize; 其中,array_Name是已定义的数组名;array_type为数组元素的数据类型,必须与定义时给出的数据类型保持一致;arraySize为数组的长度,它可为整型变量或常量。例如: int a; a= new int4; 也可以将上两行合并为一行,写作: int a= new int4;,4.1.2 一维数组的引用 当有了数组的声明和初始化后,就可以在程序中引用数组的元素了。数组元素的引用是通过数组名和下标值来进行的,其一般格式如下: array_Name arrayIndex 其中,arra

4、y_Name为数组名,arrayIndex为数组元素的下标。例如: a1=100; 数组的下标是一个int类型数,也可以使用short、byte、char类型(使用时转换成int类型),但下标不能是long类型的数。如果非得用long类型的数定义数组的下标,则须强制转换。 比如: short i; long k; int array1 i; int array4 (int) k;,在Java语言中,数组下标从0开始,到数组长度减1结束。每个数组都有一个属性length指明它的长度,例如:a.length指明数组a的长度。 例4-1 public class Score public stati

5、c void main (String args) int a = 1,2,3,4,5,sum=0; for (int i=0; ia.length; i+) sum+=ai; System.out.println(“sum=“+sum); ,4.2 二 维 数 组,一维数组元素类型可以为数组,即数组的嵌套,多维数组中每个元素为一个低维数组。由于多维数组中用得较多的还是二维数组,因而我们着重讨论二维数组的属性,其他高维数组可以以此类推。 4.2.1 二维数组的声明和初始化 二维数组声明的一般格式如下: array_type array_Name ; 或 array_type array_Nam

6、e; 其中,array_type为数组元素类型,可以是任意的数据类型;array_Name为数组名,可以是Java中合法的标识符。,例如: int array1 ; /定义一个整型二维数组 或 int array2; /同样定义一个二维整型数组 上面的定义并没有为数组元素分配内存空间,因而必须经过初始化后才能使用。 二维数组在实际的使用过程中也分为静态初始化和动态初始化两种。初始化的过程与一维数组相同,在此不多加理论说明,而只是以初始化实例来加以说明。 1静态初始化实例 int number = 1,2,3,4,5,6,7,8,9; char ch = a, b,c, d,e, f; 上例是在

7、建立数组的同时用大括号中的值给它赋初值,得到了两个二维整型数组和二维字符数组。,2动态初始化实例 1) 直接为每一维分配空间: int a = new int23; /定义数组并为其分配存储空间 2) 从最高维开始,分别为每一维分配空间:int a = new int2 ;a 0 = new int3; a1= new int5; 4.2.2 二维数组的引用 一般格式如下: array_Name arrayIndex1 arrayIndex2 其中,array_Name为数组名;arrayIndex1为数组元素的高维下标;arrayIndex2为数组的低维下标。 二维数组中,下标同样是一个in

8、t类型数,也可以使用short、byte、char类型(使用时转换成int类型)。,在C/C+使用二维数组的时候,要求每一维的长度必须一致,例如在C中有如下的定义:int array 3;其对应的二维表如表3.1所示。 表3.1 C/C+中二维数组存储格式,在Java中,却并不要求多维数组的每一维长度相同。例如,当在Java有如下的定义: int array 3=new int3; 时,其对应的二维表如表3.2所示。 表3.2 Java中二维数组存储格式,下面我们给出一个二维数组应用的实例。 例4-2 本例是通过二维数组sale存储业务员的季度销售量,并对其输出, 再计算该年的总销售量并输出。

9、 / app6_4,二维数组的输入输出 public class app6_4 public static void main(String args) int i,j,sum=0; int sale=30,35,26,32,33,34,30,29; / 声明数组并设置初值,for(i=0;isale.length;i+)/ 输出销售量并计算总销售量 System.out.print(业务员+(i+1)+的业绩分别为); for(j=0;jsalei.length;j+) System.out.print(saleij+ ); sum+=saleij; System.out.println()

10、; System.out.println(n2002年总销售量+sum+份保单); ,Java程序通过方法完成对类和对象属性的操作。方法定义了在类成员变量上的一系列操作,它只能在类的内部声明并加以实现,其他的对象通过调用对象的方法得到该对象的服务。 1. 方法的定义 方法的定义包含两部分内容:方法声明和方法体。 方法声明的一般格式如下: modifierreturnType methodName(param List) methodBody returnType 指的是方法的返回值类型,methodName 是方法名, param List 是参数表,包括参数的类型和名称。 modifier

11、为方法的修饰词,可以是以下几项:,4.3 方 法,public/protected/privatestaticfinalabstractnativesynchronized 一般声明格式中的第一项是访问控制属性,以后会介绍。 methodBody 是方法体。方法体是对方法的实现,它包括局部变量的 声明以及所有合法的Java指令。 例3-4 定义一个求三个整数中最大数的方法max3()。 int max3(int x, int y, int z) int big; big=Math.max(x,y); /调用数学类Math中的方法max() big=Math.max(big,z); return

12、 (big); ,2. 方法的调用 调用方法时,要用实际参数替换方法中的形式参数,实际参数要与形式参数一一对应。 例3-5 调用max3()方法,求三个整数中最大数。 public class methodDemo public static void main(String args) int a=2, b=5, c=3, big; big=max3(a,b,c); System.out.println(“max=+big); static int max3(int x, int y, int z) int big; big=Math.max(x,y); big=Math.max(big,z

13、); return (big); , static: 说明该方法为静态方法,静态方法我们也称作类方法。与之对应,其他的方法就为实例方法。静态方法属于类,所以只要对类作了声明,就可以直接调用该类的类方法,即使用时无须类的初始化。而实例方法不可以直接调用,只能在类的实例或子类的实例中调用。 在方法的声明格式中,需要指明返回值的类型。当一个方法不需要返回值的时候,其类型说明为void,否则方法体中必须包含return语句。返回值既可以是基本数据类型,也可以是复杂数据类型。 3. 方法中参数的使用 在C语言中,函数的参数存在值传递/参数传递的问题。比如C语言中如果参数是指针或数组名则为参数传递。在JA

14、VA语言中复杂数据类型作参数相当于指针的使用,即参数传递(引用传递、地址传递),而基本数据类型作参数传递则相当于值传递。比如下例:,【例4-6】说明简单数据类型与引用数据类型的区别。 import java.io.*;public class PassTestfloat ptValue;public static void main(String args) int val;PassTest pt=new PassTest();val=11;System.out.println(Original Int Value is:+val); pt.changeInt(val); /值参数System

15、.out.println(Int Value after Change is: +val); /*值参数 值的修改,没有影响值参数的值*/pt.ptValue=101f;System.out.println(Original ptValue is:+pt.ptValue);,pt.changeObjValue(pt); /引用类型的参数System.out.println(ptValue after Change is:+pt.ptValue); /* 引用参数值的修改,改变了引用参数的值*/ public void changeInt(int value)value=55; /在方法内部对值

16、参数进行了修改public void changeObjValue(PassTest ref)ref.ptValue=99f; /在方法内部对引用参数进行了修改 运行结果 : Original Int Value is: 11 Int Value after Change is: 11 Original ptValue is: 101.0 ptValue after Change is: 99.0,【例4-7】 :数组做参数 / app6_9, 简单的范例 public class app6_9 public static void main(String args) int score=5,

17、3,8,12,6,7; / 声明一维数组score largest(score); / 将一维数组score传入largest() method ,public static void largest(int arr) int tmp=arr0; for(int i=0;iarr.length;i+) if(tmparri) tmp=arri; System.out.println(largest num = +tmp); ,4. 方法重载 方法重载是指多个方法享有相同的名字,但是这些方法的参数必须不同,或者是参数的个数不同,或者是参数类型不同。返回类型不能用来区分重载的方法。参数类型的区分度

18、一定要足够,例如不能是同一简单类型的参数,如int与long。 【例4-8】import java.io.*;class MethodOverloadingvoid receive(int i) System.out.println(Receive one int data);System.out.println(i=+i);void receive(int x, int y) System.out.println(Receive two int datas);System.out.println(x=+x+ y=+y);,public class MethodOverloadingTest public static void main(String args) MethodOverloading mo=new MethodOverloading(); mo.receive(1); mo.receive(2,3); 编译器会根据参数的个数和类型来决定当前所使用的方法 。 运行结果: Receive one int data i=1 Receive two int datas x=2 y=3,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1