资源描述:
《JAVA学习--第4章数组》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、江苏大学计算机学院Version2.0第4章数组1本章内容一维数组的声明和初始化数组元素的引用二维数组的声明和使用数组复制2数组概述数组可以看成是多个相同类型数据组合,对这些数据的统一管理。数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组中的元素可以是任何数据类型,包括基本类型和引用类型。3一维数组的声明一维数组的声明方式:typevar[];或type[]var;例如:inta1[];int[]a2;doubleb[];Person[]p1;Strings1[];数组的声明创建了一个引用的空间,用它可以引用
2、一个数组实际的内存分配由new语句或数组初始化程序动态完成。Java语言中声明数组时不能指定其长度(数组中元素的个数),例如:inta[5];//非法4数组对象的创建Java中使用关键字new创建数组对象,格式为:数组名=new数组元素的类型[数组元素的个数]例如:publicclassTest{publicstaticvoidmain(Stringargs[]){int[]s;s=newint[5];for(inti=0;i<5;i++){s[i]=2*i+1;}}}堆内存null栈内存S5数组对象的创建Java中使用关键字new创建数组对象,
3、格式为:数组名=new数组元素的类型[数组元素的个数]例如:publicclassTest{publicstaticvoidmain(Stringargs[]){int[]s;s=newint[5];for(inti=0;i<5;i++){s[i]=i;}}}堆内存***栈内存S000006数组对象的创建Java中使用关键字new创建数组对象,格式为:数组名=new数组元素的类型[数组元素的个数]例如:publicclassTest{publicstaticvoidmain(Stringargs[]){int[]s;s=newint[5];for
4、(inti=0;i<5;i++){s[i]=i;}}}堆内存***栈内存S03124注意:指向单个数组元素的下标总是从0开始,并且必须保持在合法范围内:大于或者等于0且小于数组长度7元素为引用数据类型的数组注意:元素为引用数据类型的数组中的每一个元素都需要实例化。publicclassTest{publicstaticvoidmain(Stringargs[]){Date[]days;days=newDate[3];for(inti=0;i<3;i++){days[i]=newDate(2004,4,i+1);}}}classDate{intye
5、ar;intmonth;intday;Date(inty,intm,intd){year=y;month=m;day=d;}}null栈内存days堆内存8元素为引用数据类型的数组注意:元素为引用数据类型的数组中的每一个元素都需要实例化。publicclassTest{publicstaticvoidmain(Stringargs[]){Date[]days;days=newDate[3];for(inti=0;i<3;i++){days[i]=newDate(2004,4,i+1);}}}classDate{intyear;intmonth;i
6、ntday;Date(inty,intm,intd){year=y;month=m;day=d;}}***栈内存days堆内存nullnullnull9元素为引用数据类型的数组注意:元素为引用数据类型的数组中的每一个元素都需要实例化。publicclassTest{publicstaticvoidmain(Stringargs[]){Date[]days;days=newDate[3];for(inti=0;i<3;i++){days[i]=newDate(2004,4,i+1);}}}classDate{intyear;intmonth;int
7、day;Date(inty,intm,intd){year=y;month=m;day=d;}}***栈内存days堆内存200441*********20044220044310动态初始化数组定义与为数组元素分配空间和赋值的操作分开进行,例如:数组初始化(1)publicclassTest{publicstaticvoidmain(Stringargs[]){inta[];a=newint[3];a[0]=3;a[1]=9;a[2]=8;Datedays[];days=newDate[3];days[0]=newDate(1,4,2004);d
8、ays[1]=newDate(2,4,2004);days[2]=newDate(3,4,2004);}}classDate{intye