您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业财务 > 《Java程序设计》辅导资料3
大连理工大学网络教育学院第1页共6页Java程序设计辅导资料三主题:第二章Java数组、Java静态方法以及Java字符串(课件)学习时间:2014年10月13日—10月19日内容:我们这周主要学习《Java程序设计》这门课程第2章后半部分Java数组、Java静态方法以及Java字符串的相关内容。希望通过下面的内容能使同学们对Java语言的基础有更进一步的了解。知识要点:1、一维数组2、数组的初始化3、数组的引用赋值4、静态方法5、方法声明与调用6、方法重载7、字符串重点难点:1、数组初始化2、数组的引用赋值3、静态方法4、方法重载第三节数组数组(array)是具有相同数据类型的元素的有序集合,数组的元素个数称为数组长度。元素在数组中的位置称为元素的下标,采用一个下标唯一确定一个元素的数组称为一维数组,采用两个下标唯一确定一个元素的数组称为二维数组。一个一维数组占用一块内存空间,每个元素连续存储,即每个元素的存储单元地址是连续的。Java数组都是动态数组,在声明数组变量之后,使用new运算符申请数组的存储空间。一、一维数组声明一维数组变量的语法格式有以下两种,两者功能相同。数据类型[]数组变量;数据类型数组变量[];数据类型是数组元素的数据类型,数组变量是用户声明的标识符,[]是必需的括号运算符,不是可选项,一对[]表示一维数组。例如:int[]a或inta[]。使用new运算符申请数组所需要内存单元的语法格式如下:数组变量=new数据类型[长度]其中,new是关键字,数据类型是数组元素的数据类型,该数据类型必须与数组变量的数据类型匹配;长度是数组申请的存储单元个数,长度必须为大于0的正整数。例如,以下数组a获得5个存储单元的内存空间,存储单元的大小由元素的数据类型决定。a=newint[5];大连理工大学网络教育学院第2页共6页Java语言自动为每个数组变量提供length属性表示数组占用的存储单元个数。使用点运算符获得数组长度的格式如下:数组变量.length一维数组的一个元素由一个下标唯一确定,格式如下:数组变量[下标]其中,下标是确定数组元素位置的表达式,其数据类型是整数类型,取值为0-a.length-1。数组中各元素在内存中按下标的升序顺序连续存放。上述数组a的5个元素是a[0]-a[4]。数组声明时赋初值数组变量在声明时可赋初值。例如:inta[]={1,2,3,4,5};数组元素的初始化Java对所有使用new运算符动态分配的存储单元都进行初始化工作,变量根据其所属的数据类型获得相应初值。各种数据类型的初始值如表3.1。表3.1Java各种数据类型的初始值数据类型初始值数据类型初始值byte、short、int、long0char“\u0000”float0.0fbooleanfalsedouble0.0引用数据类型null二、数组的引用模型Java不支持C/C++的指针,对数组的操作只能引用下标,不能使用指针。Java的数组与C/C++的数组还有一些区别,Java全部是动态数组。引用数据类型,与基本的数据类型变量的共同点在于都需要声明,都可以赋值。不同点在于:存储单元的分配方式不同,两个变量之间的赋值方式也不同。基本数据类型变量的传值赋值基本数据类型的变量获得存储单元的方式是静态的,声明了变量就意味着该变量占据了存储单元。变量保存数据值,两个变量之间赋值,传递的是值。数组变量的引用赋值引用数据类型的变量获得存储单元的方式都是动态的,必须使用new运算符申请并动态获得存储单元。引用变量保存地址、长度、引用计数等特性。数组是引用数据类型。一个数组变量保存一个数组的引用,即该数组占用的一块存储空间的首地址、长度及引用计数等特性。两个数组变量之间的赋值是引用赋值,传递地址等引用特性、没有申请新的存储空间。例如:inta[]={1,2,3,4,5},b[];b=a;//引用赋值b[1]=10;复制数组Java的System类提供复制数组的arraycopy()方法,该方法声明如下:publicstaticvoidarraycopy(Objectsrc,intsrcPos,Objectdest,intdestPos,intlength)arraycopy()方法将src数组从srcPro下标开始的length个元素复制到dest数组从destPos开始的若干存储单元中。例如:inta[]={1,2,3,4,5},b[];大连理工大学网络教育学院第3页共6页arraycopy(a,0,b,1,4);三、二维数组如果数组元素又是数组,则称为多维数组,常用的是二维数组。声明二维数组在声明二维数组变量及申请存储空间时,用括号运算符[][]标明二维。例如:intmat[][];mat=newint[2][3];声明和申请空间可以合起来写:intmat[][]=newint[2][3];声明时可以为二维数组赋初值,将值用多层花括号(不能省略)括起来。例如:intmat[][]={{1,2,3},{4,5,6}};另外,请同学们看一下教材中的二维数组的引用模型和不规则的二维数组,看一下,稍作了解,不做重点内容。第四节静态方法在程序设计语言中,函数是实现特定功能的、可被调用执行并能返回值的程序段。函数包括函数声明和函数体。函数声明定义函数名、形式参数及返回值;函数体由执行操作的语句序列组成。函数执行通过函数调用实现。函数调用时必须指定函数名和实际参数,函数执行后返回结果值。函数返回值可以参加其数据类型允许的运算。Java语言没有全局函数、函数声明在类中,称为成员方法,有静态方法和实例方法两种。一、方法声明与调用方法声明用于命名方法标识符,指定方法的返回值类型,声明格式如下:[修饰符]返回值类型方法([参数列表]){语句序列;[return[返回值]]}其中,修饰符指定方法的访问权限等特性,如关键字public声明公有方法,static声明静态方法等。没有返回值用关键字void标记。参数列表声明形式参数的数据类型,参数名是标识符,多个参数之间以逗号分隔;即使没有参数,()也不能省略。在方法体中声明的变量称为局部变量,局部变量和形式参数的作用域都是局部的,仅限于声明它的方法之内。Java不支持类之外的全程变量。局部作用域,既使得变量不会被非法访问或修改,增加了安全性,又可在不同作用域中声明变量,不会相互干扰。方法调用必须指定方法名和实际参数,语法格式如下:方法([参数列表]);方法调用执行方法体,返回结果值,方法返回值可以参加其数据类型所允许的运算。例如:if(isPrime(k));注意:return语句表示方法调用结束,写在return后的语句将不会被执行。声明main方法JavaApplication应用程序从main()方法开始执行。如果一个类包含main()方法,则该类可被Java虚拟机执行。main()方法必须声明如下:大连理工大学网络教育学院第4页共6页Publicstaticvoidmain(Stringargs[])其中,参数args是一个字符串数组,它接受命令行参数。main()方法能够调用该类中的其他静态方法,也可通过对象调用实例成员方法。main()方法自己只能被Java虚拟机调用执行,不能被其他方法调用。二、参数传递方法调用时给出的参数称为实际参数,可以是常量、变量、表达式或方法调用等,多个参数之间用逗号分隔。实际参数必须在数据类型、参数个数及次序等三方面与形式参数一一对应。方法调用的参数传递原则与赋值相同,即实际参数向形式参数赋值。传递方式因形式参数的数据类型不同,若是基本数据类型,则传递值;若是引用数据类型,则传递引用。在方法体内,如果修改引用类型的形式参数,同时改变对应的实际参数。同样,方法返回值也因数据类型不同,分别传递值或引用。三、方法重载一个类中如果有多个同名方法但带有不同的参数列表,称为方法的重载。重载方法的参数列表不同是指参数的数据类型或个数或次序不同。重载方法之间必须以参数列表相区别,不能以返回值相区别,即不能有两个参数列表相同但返回值不同的重载方法。程序运行时,究竟执行重载同名方法中的哪一个,取决于调用该方法的实际参数的数据类型、个数和次序。四、递归方法递归是数学中一种重要的概念定义方式,即用一个概念本身直接或间接地定义它自己。递归定义必须满足以下两个条件:·边界条件—至少有一条初始定义是非递归的,如1!=1。·递推通式—由已知函数值逐步递推计算出未知函数值,如用(n-1)!定义n!.存在直接或间接调用自身的算法称为递归算法。第五节字符串字符串是字符的有限序列。Java的字符串String是一个类,属于引用数据类型。String类的特殊之处在于它具有某些基本数据类型的特性。对字符串变量的操作和运算,既可以像基本数据类型变量一样,进行赋值、连接和关系运算,也可以像类的对象一样,通过调用类的方法执行Java定义的操作。一、字符串的基本数据类型特性字符串常量:是由双引号括起来表示的字符序列,其中可包含转义字符,如hello!、汉字\n、等。字符串只能在同一行,不能换行。字符串长度指其中包含的字符个数,空串长度为0,一个字母、汉字均是Java的一个字符,数据类型是char,占2字节。声明字符串变量的语法格式同基本数据类型。例如:Stringstr;//声明变量Stringstr2=abc;//声明时赋初值字符串变量赋值运算:str=abc;大连理工大学网络教育学院第5页共6页Stringstr2=str;注意:用单引号括起来的是字符常量,如'a';用双引号括起来的是字符串常量,如a,所以有,没有'',而且两者数据不兼容。Java使用字符串连接运算符“+”将两个字符串首尾相连接起来。例如:str=abc+xyz;//连接结果为abcxyz与C/C++语言不同,Java语言的字符串不是字符数组,不能以字符数组方式通过下标对指定位置的字符进行操作。二、字符串的类特性String是一个类,具有构造方法、实例方法等。可通过String对象调用String的方法实现获得字符串长度、获得指定位置字符、获得指定位置子串等功能。String类的常用方法如表3.2。表3.2String类的常用方法方法说明intlength()返回字符串的长度booleanequals(Objectobj)比较两个字符串是否相等charcharAt(intindex)返回index指定位置的字符,index从0开始Stringsubstring(intbegin)返回序号从begin开始至字符串末尾的字串,begin从0开始Stringsubstring(intbegin,intend)返回序号从begin开始至end-1的字串StaticStringformat(Stringformat,Object…args)返回format指定格式的字符串调用String类中的方法,可执行Java定义的操作,实现相应的功能,语法格式如下:字符串变量.方法([参数列表])例题1、Java的数组都是动态数组,必须使用new为其分配空间。()2、Java字符串可以用字符串变量操作,也可以用字符数组操作。()3、下列代码语句所表示的含义是:()inta[]={1,2,3,4,5},b[];arraycopy(a,0,b,1,4);4、'a'和a的区别是()5、下列关于方法的重载,说法正确的是()。A.方法重载则方法名相同B.方法重载则参数列表必须不同C.方法重载则方法返回值必须不同D.重载方法或者以参数列表相区别,或者以返回值相区别6、写出用递归方法求Fibonacci数列的方法。7、用Java实现字符串abcd的倒置输出。例题答案1、正确2、错误3、将a数组的前4个元素复制到b数组大连理工大学网络教育学院第6页共6页4、前者表示字符常量,后者表示字符串常量5、AB6、publicstaticintfibonacci(intn){if(n=0)if(n==0||n==1)returnn;elsereturnfibonacci(n-2)+
本文标题:《Java程序设计》辅导资料3
链接地址:https://www.777doc.com/doc-2835979 .html