0
Javaを初めて使用する場合。 30行目でNull Pointer Exceptionを取得しています。私は例外が発生することを避けるために配列が宣言されたときに配列を初期化する必要があることを知っています。しかし、この場合、初期化される配列のサイズはわかりません。だから、誰かがこのエラーを修正する方法を説明してもらえますか?変数を宣言して初期化するときに何が起こるかについても説明できますか? import java.util。*;ヌルポインタ整数配列の例外
class Person {
protected String firstName;
protected String lastName;
protected int idNumber;
// Constructor
Person(String firstName, String lastName, int identification){
this.firstName = firstName;
this.lastName = lastName;
this.idNumber = identification;
}
// Print person data
public void printPerson(){
System.out.println(
"Name: " + lastName + ", " + firstName
+ "\nID: " + idNumber);
}
}
class Student extends Person{
private int[] testScores; //exception Here
Student(String firstName,String lastName,int id,int[] scores){
super(firstName,lastName,id);
for(int i=0;i<scores.length;i++)
{
testScores[i]=scores[i];
}
}
char calculate(){
int avg=0,i=0;
for(i=0;i<testScores.length;i++)
{
avg=avg+testScores[i];
}
avg=avg/(i+1);
if(avg>=90 && avg<=100)
return 'O';
else if(avg>=80 && avg<90)
return 'E';
else if(avg>=70 && avg<80)
return 'O';
else if(avg>=55 && avg<70)
return 'P';
else if(avg>=40 && avg<55)
return 'D';
else
return 'T';
}
}
'int [] score 'スコアが' null'だった可能性があります。 –
これは「線30」ですか?そこにコメントを入れて... – Plirkee
'Student'クラスのコンストラクタ内で' testScores'を初期化する必要があります: 'testScores = new init [scores.length];' '単に' testScores = scores; 'をコピーしてください。 http://stackoverflow.com/questions/1200621/how-to-declare-an-arrayを参照してください。 –