数组
$ w4 J' ]( g* h6 F1 B1 Q
3 P v7 e! x( A4 b Java数组(array)是动态创建的索引对象,这一点和类非常相似,此外,同类一样,数组只能索引数组的实例或者null ,如以下代码所示:
$ E6 }, l% R9 f+ D ^ - s& L4 G( s% @* E# p
int[] myIntArray = new int[5];
7 z$ ^$ [& y+ p% M : O% @1 z/ W' V; I
int[] anotherIntArray = null;
6 A& t. p/ M. C& y& ~ 8 b9 s& Y. U+ K5 C4 U
数组是Object类的继承,这样,Object类的所有方法都可以被数组调用。数组对象由元素组成。元素的数目也可以为0,在这种情况下称做数组为空。所有的数组都是从0开始对元素编号的,这意味着数组内的第1个元素的索引编号是数字0.所有对数组元素的访问都会在运行时上接受检查,如果试图使用编号小于0或者大于数组长度来索引元素就会产生ArrayIndexOutOfBoundsException异常并被扔出。% \, x4 S; \) `( f$ D
% X! {, p; Q8 q1 G
数组的元素按整型值索引,如以下代码所示:3 g) u+ C8 ^# E# X+ V; x
4 @* [6 x$ t! q, C7 j% P6 Y5 V
int[] myIntArray = { 9, 5, 6 };/ r! p7 s) w1 `# \
- L8 G3 \ C( L int int1 = myIntArray[0];
! C0 j& T: d c& k3 \ 2 g( p3 ^+ j: {$ `3 e# @2 P4 A! h7 h
int int2 = myIntArray[1];1 t6 X j( @5 S
' G+ U& A! H1 B& r int int3 = myIntArray[2];" H& O) O; Y, ]6 V, p
+ ] b- u9 [4 V8 }' w; {% Q# K 数组对象的长度是不变的。为了改变数组变量的长度,你必须创建另一个数组并赋给变量,如以下代码所示:7 i6 P, K) A( h6 l5 j0 o$ m& r$ u5 B
# L& h Z0 Q. M: U2 a# l
int[] myIntArray = { 9, 5, 6 };
% V: X# F* [/ C) a0 B/ X , _$ j- n0 G( v/ a0 y
System.out.println("myIntArray length = " +myIntArray.length); // 输出结果是3
/ d% |# J1 o9 s/ p- G! q9 r
7 b& Z) D/ T0 [/ Z4 m myIntArray = new int[] { 3, 6, 4, 2, 8 };0 K% m7 N: T% b
+ [/ y1 G2 ^0 b8 |
System.out.println("myIntArray length = " +myIntArray.length); // 输出结果是5
0 q1 \! `" R9 ^9 I' P7 l 1 k3 P+ F' @" }' _0 d7 D
小结:除了简单数据类型之外,Java语言中还定义了本文所讨论三种索引数据类型。Java还运行开发人员自己用简单和索引数据类型组合起来创建复合数据类型。用户定义的组合数据类型和Java预定义复合数据类型一道为程序员提供了强大的面向对象工具包。 |