ad

打开《Java语言程序设计与应用》_从基础向熟练进发_3.2 数组边界

admin 130 2023-10-25

【摘要】 本书摘自《Java语言程序设计与应用》一书中第3章,第2节,由徐俊武编著。

3.2 数组边界

在Java 中,数组下标从0开始,数组中的元素个数length 是数组类中唯一 的数据成员变量。使用new 创建数组时系统自动给length 赋值。数组一旦创 建完毕,其大小就固定下来。程序运行时可以使用length 进行数组边界检查。 如果发生越界访问,则抛出一个异常。例3-1中创建了一个有10个int 类型的数组 list,然后顺序访问每个数组元素。遍历时,没有使用常数10,而是用 list. length 控制数组的下标范围。

【例3-2】 使 用 length。

int list[]=new int[10];

for(int i=0;i

打开《Java语言程序设计与应用》_从基础向熟练进发_3.2 数组边界

循环的结束条件中使用list.length,而不是常数10,这样不会引起数组下标 越界,使程序更健壮,修改更方便。

3.3 数组元素引用

当定义了一个数组,并用运算符 new 为它分配了内存空间后,就可以引用 数组中的每个元素了。数组名加上下标可以表示数组元素,元素的引用方 式为:

arrayName[index];

其中,index 为数组下标,下标从0开始, 一直到 length-1。

下标可以是整型常数或表达式,如下所示:

arrayName[1],

arrayName[i],

arrayName[6*i],

当创建一个数组时,每个元素都被初始化。如前面创建的字符串 s,它的每 个值被初始化为0(0\0000)。而数组 points的每个值被初始化为 null,表明它

还没有指向真正的 point对象。在执行赋值语句

point[0]=new Point();

后,系统创建一个真正 Point对象,并让数组的第一个元素指向它。

注意:包括数组元素在内的所有变量的初始化,从系统安全角度看都是必不 可少的,任何变量都不能在没有初始化的状态下使用。但编译器不能检查数组 元素的初始化情况,所以需要程序员自己多注意。

【例3-3】 数组初始化。

double[] heights=(5.4,2.5,12,12.5,23,9.5};

String[] names={"zhang","wang","sima"};

System.out.println(heights.length); //打印6

System.out.println(names.length); //打印3

names[2]=null;

System.out.println(names.length);

/ / 擦 掉 了 值 "sima"

/ / 仍 打 印 3

3.4 数组的传递

许多编程语言都有两种方法将参数传递给方法,按值传递和按引用传递。 Java与其他语言不同,它不允许程序员选择按值传递还是按引用传递各个参 数,基本类型(byte、short、int、long、float、double、boolean、char)的变量总是按值 传递。就对象而言,不是将对象本身传递给方法,而是将对象的引用或者说对 象的首地址传递给方法,引用本身是按值传递的。也就是说,将引用的副本传 递给方法(副本就是说明对象此时有两个引用),通过对象引用,方法可以直接 操作对象,当操作该对象时才能改变该对象,而操作引用时源对象是没有改 变的。

如果将单个基本类型数组的元素传递给方法,并在方法中对其进行修改, 则在被调用方法结束执行时,该元素中存储的并不是修改后的值,因为这种元 素是按值传递,如果传递的是数组的引用,则对数组元素的后续修改可以在原 始数组中反映出来,数组本身就是个对象,int[] a=new int[2];,这里的 int是 数组元素的类型,2代表数组的长度。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:《JAVA服务端研发知识图谱》_让你更懂Java后台研发_3.1 第3章 代码管理
下一篇:看《Excel人力资源管理实操全流程演练》如何教你做更好的表格_5.1 年度培训计划统计表设计
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×