首先,这里报告这个错误是因为myOper[0]为空,无法获取其属性I,所以会报告错误。
其次,这里的oper[] myOper=new oper[10]只实例化了一个数组,但是数组中的对象没有实例化,只是声明了一串oper对象。
为什么同样,如果是int[] abc=new int[10]或者char[] abc=new char[10]然后赋给abc[0],就不会有错误?这是因为声明值类型时,默认初始值为0;声明引用类型时,默认初始值为null。因为类属于引用类型,所以声明后类数组中的oper对象默认为null,导致错误“对象引用没有设置为对象实例”。
至于解决方案,您只需要在您想要分配的数组中实例化一个对象,比如您在这里写的:
oper[] myOper=新的oper[10];
myOper[0]=new oper();//添加对象的实例化
我的朋友[0]。I=1;