Java的数组

Java的数组

                                                                                                                           zhangleispirit@gmail.com

     Java的数组是Java编程语言中比较特殊的一种类型,因为Java把数组当成一种对象来进行处理。在语法规则上有很多值得注意的地方。现将数组的所有语法规则总结如下:

    

   1.数组的声明:

    数组的声明实际上就是声明同一个数组对象。数组有两种声明方式:

     int[] key;或者

     int key[];

     多维数组:

     String[][] str;或者

     String str[][];或者

     String[] str[];

     注意:数组声明中,不能包含数组的长度。 

   2.数组的构造

    构造一个数组实际上是在堆上创建一个对象,使用new关键字,而且要指定数组的长度。

int[] test;//声明一个数组

test=new int[6];//构造一个数组

可以将两者合二为一:

int[] test=new int[6];

对于包含对象引用的数组,

Thread[] threads=new Thread[6];

注意:此时数组元素都是null 的,没有创建对象赋给数组元素(即引用)。 

多维数组的构造:

int[][] test=new int[3][];

多维数组构造时必须指定第一维的长度,后面维数的长度是可以任意的。此处创建的数组只是第一维的数组,必须显式的创建第二维的数组:
      test[0]=new int[5];

  test[1]=new int[4];

  test[2]=new int[3];

   3.数组的初始化:

数组的初始化即初始化数组元素的值,对基本类型来说就是给数组元素赋基本值,对于对象类型来说就是创建新的对象,将对象的引用赋给数组的元素。

此处给出两种数组初始化的特殊情况:
   (1)在一行内声明,构造和初始化。

int x;

int[] mn={6,x,9};

对象类型:
     Dog dog1=new Dog("asd");

 Dog[] st={dog1,new Dog("stf"),new Dog("tyu")};

多维数组:
     int[][] score={{1,2,3},{9,2},{7,8,9}}

(2)构造和初始化匿名数组:
     int[] score;

     score=new int[]{1,2,3};

     注意:使用这种方式创建数组时,参数中不能含有数组的长度。 

 4.数组元素的赋值:
    基本数组:

     基本数组可以接受能够隐式提升为所声明的数组类型的任何值。比如int型的数组中可以存放char,byte,short类型的值。

   对象引用数组:

  数组的元素可以为所声明数组类型的任意子类型。

  例如:
     Animal[] ani=new Animal[]{

new Tiger("zhanglei"),new Tiger("zhang")

};

  5.数组引用之间的相互赋值:
   只有相同类型的数组引用才可以相互赋值引用。

   基本类型的数组引用之间是不可以相互赋值的,即使基本类型之间存在隐式的转换提升关系。

   但是,对于对象引用型的数组,子类型的引用可以被赋给父类型,但反过来不成立。

   多维数组的赋值首先要注意维数必须相同。


posted @ 2008-10-16 11:18  zhanglei_spirit  阅读(2644)  评论(0编辑  收藏  举报