这是我的主要代码:
Scanner input= new Scanner(System.in);
Student[] starray=new Student[5];
for (int i=0; i<3; i++)
{
System.out.println("enter:");
starray[i].name=input.next();
System.out.println("enter:");
starray[i].family=input.next();
System.out.println("enter:");
starray[i].sid=input.nextInt();
}
for(int i=0; i<3; i++)
System.out.println(starray[i].name);
我有一堂课:
String name,family;
Integer sid;
Student(){
name="kh";
family="kh";
sid=0;}
当我运行它时,下面有异常:线程“ main”中的异常,在testcodes.TestCodes.main(TestCodes.java:19)上的java.lang.NullPointerException Java结果:1
在这种情况下,Java与C ++非常相似。在C ++中,当您声明对象数组时,所有对象仍未初始化(其中没有任何实际对象),换句话说,该数组只是对象的占位符。
所以你的陈述
Student[] starray = new Student[5];
在视觉上的形式可能是
starray --> +------+------+------+------+------+
| null | null | null | null | null |
+------+------+------+------+------+
在这句话之后
starray[0] = new Student();
将是
starray --> +------+------+------+------+------+
| | null | null | null | null |
+---|--+------+------+------+------+
|
v
+------------------+
| Student Instance |
+------------------+
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句