环境说明:
开发环境:JDK 1.8 IDEA
系统:Win10 专业版
问题
大概是这样:在一个Student
类中定义了一个静态对象数组以及其他的数据成员和成员方法,其中某个成员方法中包含对这个对象数组的部分操作。在main
方法中申明一个Student
的对象,通过Student
对象调用这个方法操作静态数组,然后运行结果报错:
原因
问题原因其实很简单,就是没有对这个数组进行初始化操作,即当前只存在数组的声明,系统只为二维数组对象的引用变量分配了空间,并没有创建相应的数组对象 。那么在相关的方法中,自然无法对这个看似存在但实际却找不到影儿的数组进行操作,所以就会报错了。
解决办法
在类中再添加一个成员方法init()
,给这个对象数组进行内存空间的申请及初始化:
然后在main
方法中申明对象以后,首先调用init()
方法对对象数组进行初始化。
其实刚开始想直接在重载的构造方法中调用这个函数,这样的话就不用手动调用了,在初始化对象时就会同时完成对象数组的初始化,但仔细一想好像也不行,每初始化一个对象就会重新初始化数组,这样就会造成原来数组的信息丢失。所以还是老老实实手动调用吧。
评论 (0)