dou*_*ful -1 java arrays object
我已经检查了几乎所有类型的对象数组的声明.请建议所需的更改.此代码给我一个空指针异常,如下所示:
objarray.main(objarray.java:33)中线程"main"java.lang.NullPointerException中的异常
import java.util.*;
class Prod {
private int pno, pcost;
private String pname;
void accept() {
Scanner sc = new Scanner( System.in );
System.out.println( "Enter pno" );
pno = sc.nextInt();
System.out.println( "Enter pname" );
pname = sc.next();
System.out.println( "Enter pcost" );
pcost = sc.nextInt();
}
void print() {
System.out.println( pno + "\t" + pname + "\t" + pcost );
}
}
class objarray {
public static void main( String[] args ) {
int i;
Prod[] p = new Prod[3];
for( i = 0; i < 3; i++ )
p[i].accept();
for( i = 0; i < 3; i++ )
p[i].print();
}
}
Run Code Online (Sandbox Code Playgroud)
您需要初始化数组的元素:
Prod[] p = new Prod[3];
for(i = 0;i<3;i++)
p[i] = new Prod(); // added this line
// rest of code
Run Code Online (Sandbox Code Playgroud)
该语句Prod[] p = new Prod[3];只为对象的引用分配空间 - 它不会创建它们.Prod