Java言語入門 〜C言語を学んだ君へ〜
[第8回]練習問題 第3問解答
第3問解答
第3問解説
オブジェクトの配列についての理解度を確認する問題です。
よくあるエラーの1つなので、しっかり覚えてください。
エラーの起きた理由と場所
まず、問題のプログラムで、Printクラスの配列を作成しました。
しかし、この時点ではPrintクラスのオブジェクトは生成されておらず、Printクラスを格納するための「メモリ領域」を確保しただけです。
つまり、配列の中身は「null」です。
そのため、問題のプログラムの15行目で、nullを参照したために、エラーが起きます。
エラーの対処
このエラーを回避するには、配列の宣言後、次のように記述します。
Print ps[] = new Print[3];
ps[0] = new Print();
ps[1] = new Print();
ps[2] = new Print();
これで、配列の各要素の参照先がPrintオブジェクトになり、エラーがなくなります。