【java学习笔记】对象数组初始化问题
2016-03-03 17:17
246 查看
今天在学习对象数组时,总结一下今天所学的内容。
我们先创建Person类:
其实,还有一个生活现象解释上述空指针异常的问题:
一般我们家中有专门装调料的那种方形盒子:里面的4个格子可以放盐,味精,鸡精等调料。但是在将这些调料放进去之前,这些格子是空的,也就是NUll,也就相当于Person[] persons = new Person[4],但是这4个格子并没有放调料,那么你就不能说哪个格子有指定的味道,那么程序中persons[0] .age= 16是错误的,因为里面没有对象,是null!!!。
笔记都在代码里面,我这里也就不重新打了。
我们先创建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!!!。
笔记都在代码里面,我这里也就不重新打了。
相关文章推荐
- spring,springmvc 定时任务
- 【java学习笔记】for增强循环
- Java对象克隆——浅克隆和深克隆的区别
- 初识spring之quartz定时调度
- java 字符串缓冲池 String缓冲池
- java中compareTo和compare方法之比较
- JAVA虚拟机、Dalvik虚拟机和ART虚拟机简要对比
- Java线上应用故障排查之一:高CPU占用
- JAVA的RSA加密算法工具类
- 测试开发Java培训之操作Excel
- eclipse设置java虚拟机内存大小
- 我的java学习の流程控制作业の人民币转换
- JDK的动态代理-面向切面编程简单使用
- Spring源码解析——如何阅读源码
- JAVA基础 two
- Java 内存区域
- RHEL6.6安装My Eclipse 2015
- maven安装以及eclipse配置maven
- SSH(一)---Spring框架概述和SpringMVC原理
- 我的java学习 の 数组作业