您的位置:首页 > 编程语言 > Java开发

【java学习笔记】对象数组初始化问题

2016-03-03 17:17 246 查看
今天在学习对象数组时,总结一下今天所学的内容

我们先创建Person类:

package 类数组的初始化相关问题;

public class Person {
	public int age;
	public String name;
	public Person(){}
}
这里先不提供set,get方法,然后在Test类中测试:

package 类数组的初始化相关问题;

public class Test {
	public static void main(String[] args){
		Person person = new Person();
		person.age = 16;
		System.out.println(person.age);
		
		//创建一个Person类型的数组
		/**
		  *Person[]  persons = new Person[5];
		  *persons[0].age = 17;
		  *System.out.println(persons[0].age);
		  *注意这样会报错:空指针异常
		  *
		  *分析原因:因为Person[] persons = new Person[5]并没有创建5个对象
		  *而是创建了5个Person类型的空间,但是没有Person persons[o] = new Person()这一句
		  *结合我们平时生活中的例子:
		  *一个教室有60个座位,那么我们可以说,这个教室可以容纳60人,相当于上述的
		  *Person[]  persons = new Person[60],但是教室只是开辟了60个人的空间,教室
		  *里面并没有人,那么久不能调用这句persons[0].age = 17;
		  *
		  *
		  *这是对于引用类型而言,如果是基本类型就不一样了
		  *基本类型默认数值是0,引用类型初始化默认值是null,也就是说只有空间,但是没有对象
		  **/
		//Person[]  persons = new Person[5];
		//System.out.println(persons[0].age);这样同样会报空指针异常
		
		int[] arr = new int[5];
		arr[0] = 5;
		System.out.println(arr[0]);
	}
}


其实,还有一个生活现象解释上述空指针异常的问题:

一般我们家中有专门装调料的那种方形盒子:里面的4个格子可以放盐,味精,鸡精等调料。但是在将这些调料放进去之前,这些格子是空的,也就是NUll,也就相当于Person[] persons = new Person[4],但是这4个格子并没有放调料,那么你就不能说哪个格子有指定的味道,那么程序中persons[0] .age= 16是错误的,因为里面没有对象,是null!!!。

笔记都在代码里面,我这里也就不重新打了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: