首页 > 编程 > Java > 正文

JavaSE_25th_数组——声明和初始化

2019-11-08 01:29:43
字体:
来源:转载
供稿:网友
一、一维数组的声明和初始化1、概述1)数组可以看成是多个相同数据类型数据组合,对这些数据的统一管理。2)数组变量属于引用类型,数组也可以看成对象,数组中的每个元素相当于该对象的成员变量。3)数组中的元素可以是任何数据类型,包括基本类型和引用类型。2、一维数组的声明1)例如:
int a1[];int[] a2;double b[];Person[] p1;String s1[];2)java语言中声明数组时不能指定长度(数组中元素的个数),例如:int a[5];//非法3、数组对象的创建1)元素为基本数据类型的数组
public class Test {	public static void main(String[] args) {		int[] s;	//数组s为null		s = new int[5];	//数组s指向堆空间中分配的5个int格子,每个格子默认值为0		/* 为数组中的每个格子赋值 */		for(int i=0; i<5; i++) {			s[i] = i;		}	}}2)元素为引用数据类型的数组
public class Test {	public static void main(String[] args) {		Date[] days;		//数组days为null		days = new Date[3];	//数组days指向堆空间中分配的3个Date类型格子,每个格子默认值为null		/* 为数组中的每个格子赋值 */		for(int i=0; i<3; i++) {			days[i] = new Date(2004, 4, i+1);		}	}}class Date {	int year; int month; int day;	Date(int y, int m, int d) {		year = y; month = m; day = d;	}}4、数组初始化1)动态初始化数组的定义与为数组元素分配空间和赋值的操作分开进行,
public class Test {	public static void main(String[] args) {		int[] a;		a = new int[3];		a[0] = 3; a[1] = 9; a[2] = 8;		Date[] days;		days = new Date[3];		days[0] = new Date(2004, 4, 1);		days[1] = new Date(2004, 4, 2);		days[2] = new Date(2004, 4, 3);	}}class Date {	int year; int month; int day;	Date(int y, int m, int d) {		year = y; month = m; day = d;	}}2)静态初始化在定义数组的同时就为数组元素分配空间并赋值。a、数组元素的初值存放在栈中
public class Test {	public static void main(String[] args) {		int[] a = {3, 9, 8};		Date days[] = {			new Date(2004, 4, 1);			new Date(2004, 4, 2);			new Date(2004, 4, 3);		};	}}class Date {	int year; int month; int day;	Date(int y, int m, int d) {		year = y; month = m; day = d;	}}b、数组元素的初值存放在堆中
public class Test {	public static void main(String[] args) {		int[] a = new int[]{3, 9, 8};		Date days[] = {			new Date(2004, 4, 1);			new Date(2004, 4, 2);			new Date(2004, 4, 3);		};	}}3)默认初始化数组是引用数据类型,它的元素相当于类的成员变量,因此数组分配空间后,每个元素也被按照成员变量的规则被隐式初始化。
public class Test {	public static void main(String[] args) {		int[] a = new int[5];		Date[] days = new Date[3];		System.out.PRintln(a[3]);		System.out.println(days[2]);	}}class Date {	int year; int month; int day;	Date(int y, int m, int d) {		year = y; month = m; day = d;	}}运行结果:
0null


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表