同一般的对象创建和定义一样,数组的定义和创建可以分开进行也可以合并一起进行。
一维数组定义格式:
<元素类型>[] <数组名>;//[]也可以放在数组名的后面
一维数组创建格式:
new <元素类型>[<元素个数>];
执行new
运算时将在内存中分配保存数组中所有元素的存储空间,并把存储空间的首地址作为运算结果返回,然后需要把该地址赋给被定义的数组对象。
例如:
int []a=new int[10];
需要注意的时虽然我们创建了对象数组,但这个步骤只是开辟了指针空间,里面的指针值都是空的(null
),如果我们需要调用对象我们需要调用构造函数。(基本类型可以会直接赋值为0)
在创建数组的同时我们还可以进行初始化任务:
<元素类型>[]<数组名>={<初始化表>};//初始化表中用逗号分开的每个初始数据项,每个初始数据都是一个表达式
String []s={"zhang","wang","li"};
计算机在执行带有初始化表的数组定义语句时将隐含执行一次new运算。
数组元素的表示:<数组名>[下标]
数组长度就是数组中包含的元素个数,当定义和创建一个数组后,数组长度值被自动保存到数组对象的成员变量length中,它是一个常量成员变量,被创建数组时自动初始化后,以后不允许改变它的值,只允许通过点运算符读取它的值。
二维数组的定义和创建:
<元素类型>[][]<数组名>=new<元素类型>[行数][列数];//同样的,中括号可以放在后面。
<元素类型>[][]<数组名>={<初始化总表>};
初始化总表中含有依次对每行元素进行初始化的分表,每个分表之间用逗号隔开。每个分表由一对花括号和内部用括号分开的每个初始数据项组成,每个初始数据项都是一个表达式。
int [][]a={{1,3,5,7},{2,4,6,8},{3,6,9,12}};
二维数组的长度:
二维数组的长度就是数组中包含的行数,当定义和创建一个二维数组后,二维数组的长度值被自动保存到数组对象的成员常量length中,在创建二维数组时自动被赋值,以后不允许改变它的值,只允许通过点运算符读取它的值。
例如,假定a是一个二维数组,它包含有6行元素,则a.length的值为6,假定a中每列都包含有8个元素,则a[i].length的值都等于8,其中行下标i为0到5之间的任何值,因为二维数组中的只带有行下标的单下标元素,是一个一维数组,该数组的长度同样可以通过点运算符访问成员常量length得到。如要得到二维数组a中行下标为0的列元素数,则表示为a[0].length。