- PR -

クラスを配列利用する方法

1
投稿者投稿内容
Desmo
大ベテラン
会議室デビュー日: 2004/03/24
投稿数: 149
投稿日時: 2004-07-08 18:13
初歩的な質問で申し訳ありません。
public class Emp {
public String name;
public int age;
}
というクラスを、別のクラスのメソッドから、
Emp emp = new Emp();
emp.name = "ABC";
System.out.println(emp.name);
として使うことができますよね。
これを、配列で使うにはどうすれば良いでしょう?
Emp[] emp = new Emp[10];
emp[0].name = "ABC";
System.out.println(emp[0].name);
とすると、コンパイルはできるのですが、実行すると、
java.lang.NullPointerException
が発生します。文法が誤っていますか? このようにクラスを配列で使うには、どう記述すれば良いのでしょうか?
カルキヌキ
会議室デビュー日: 2003/09/22
投稿数: 16
投稿日時: 2004-07-08 18:19
emp[0]が初期化されていないからですね。

Emp[] emp = new Emp[10];
for(int i = 0;i < emp.length;i++){
emp[i] = new Emp();
}
emp[0].name = "ABC";

これでどうですか。
あいつー
ベテラン
会議室デビュー日: 2004/05/20
投稿数: 89
投稿日時: 2004-07-08 18:22
あいつーです。

コード:
Emp[] emp = new Emp[10];


が意味するのはただ単に配列を入れる箱を作成した、ということだけです。
ですので、箱の中身を利用する場合は別途確保する必要があります。

コード:
emp[0] = new Emp();
emp[0].name = "ABC";


といった具合に。
Desmo
大ベテラン
会議室デビュー日: 2004/03/24
投稿数: 149
投稿日時: 2004-07-08 18:31
ありがとうございました。うまく行きました。
これでスッキリしたコードが書けます。
こんなに早く返答を頂いて、問題が解決してとても嬉しいです。
本当にありがとうございます。
1

スキルアップ/キャリアアップ(JOB@IT)