配列だけでは不便
ここまで配列、二次元配列が扱えるようになりました。しかしそれだけでは不便なことがあります。例えば、生徒の名前、英語の点数、数学の点数を次のプログラムのように管理します。
1 2 3 |
String[] name = new String[10]; int[] english = new int[10]; int[] suugaku = new int[10]; |
名前、英語、数学と別々の配列を用意しました。生徒山田さんを配列番号1で管理するとname[1]に山田、english[1]に英語の点数、suugaku[1]に数学の点数が格納されます。しかしこれでは配列3つの整合性をとっていく必要があり不具合の基になりそうです。
クラスを配列にする
これはクラスを使うことで解決します。クラスに名前、英語の点数、数学の点数を変数で定義します。
1 2 3 4 5 |
public class Student{ String name; int english; int suugaku; } |
下記1行目のように生徒数分インスタンスの配列変数を作成します。そして2行目から5行目で1件分のクラスを作成しデーターを設定します。それを6行目でインスタンス変数の配列0番目に格納しています。
1 2 3 4 5 6 7 8 9 |
Student[] students = new Student[10]; Student st = new Student(); st.name = "山田"; st.english = 80; st.suugaku = 45; students[0] = st; System.out.println(students[0].name); System.out.println(students[0].english); System.out.println(students[0].suugaku); |
すると7行目~9行目のようにstudent[0].name,
studen[0].english,sudent[0].suugakuと一つの配列で名前、英語、数学の点数が管理できます。