Javaでオブジェクトのパラメータとして配列を初期化する方法を解説
Javaでは、クラス内で宣言された配列型のフィールド(インスタンス変数)も、他の通常の変数と同じように初期化できます。主な方法は次の2つです。
- コンストラクタを使って初期化する
- セッター(setter)メソッドを使って初期化する
以下に、それぞれの方法を具体的なサンプルコードとともに紹介します。
例1:コンストラクタで配列を初期化する
次のJavaプログラムでは、配列型のインスタンス変数を宣言し、コンストラクタ経由で値を受け取って初期化しています。
public class Student {
String name;
int age;
String subs[];
Student(String name, int age, String subs[]) {
this.name = name;
this.age = age;
this.subs = subs;
}
public void display() {
System.out.println("Name: " + this.name);
System.out.println("Age :" + this.age);
System.out.print("Subjects: ");
for (int i = 0; i < subs.length; i++) {
System.out.print(subs[i] + " ");
}
}
public static void main(String args[]) {
String subs[] = {"Mathematics", "English", "Science", "Social"};
Student obj = new Student("Krishna", 25, subs);
obj.display();
}
}
実行結果
Name: Krishna Age :25 Subjects: Mathematics English Science Social
この例では、mainメソッド内で作成した配列 subs を、オブジェクト生成時の引数としてコンストラクタに渡し、フィールド this.subs に代入することで初期化しています。
例2:セッターメソッドで配列を初期化する
次は、デフォルトコンストラクタでオブジェクトを生成し、セッターメソッドを使って後から各フィールド(配列を含む)に値を設定する例です。
public class Student {
String name;
int age;
String subs[];
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public void setSubs(String[] subs) {
this.subs = subs;
}
public void display() {
System.out.println("Name: " + this.name);
System.out.println("Age :" + this.age);
System.out.print("Subjects: ");
for (int i = 0; i < subs.length; i++) {
System.out.print(subs[i] + " ");
}
}
public static void main(String args[]) {
String subs[] = {"Mathematics", "English", "Science", "Social"};
Student obj = new Student();
obj.setName("Krishna");
obj.setAge(25);
obj.setSubs(subs);
obj.display();
}
}
実行結果
Name: Krishna Age :25 Subjects: Mathematics English Science Social
補足:その他の初期化方法
上記の2つの方法以外にも、Javaには配列を初期化する手段がいくつかあります。
- フィールド宣言時に直接初期化する:
String subs[] = {"Math", "English"};のように、宣言と同時に初期化子リストを指定できます。 - newキーワードで領域を確保してから代入する:
subs = new String[4];のようにサイズを指定して生成し、あとから各要素に値を代入します。 - 可変長引数(varargs)を活用する: コンストラクタやメソッドの引数を
String... subsと定義すれば、呼び出し側で配列を明示的に作成せずに直接値を渡すことも可能です。
状況に応じてコンストラクタかセッターかを選択しましょう。オブジェクト生成時に必ず値を持たせたい場合はコンストラクタ、後から柔軟に変更したい場合はセッターメソッドが適しています。
-
Javaでboolean配列を初期化する方法をわかりやすく解説
Javaにおけるboolean配列は、boolean型の値のみを格納できる配列です。boolean配列のデフォルト値(初期値)はfalseであり、配列を作成した時点で、すべての要素が自動的にfalseで初期化されます。一方、参照型(クラス型)の配列の場合は、nullで初期化される点に注意が必要です。 実際の開発では、「配列のすべての要素をtrueまたはfalseで明示的に初期化したい」というケースがよくあります。そのような場合には、Arrays.fill()メソッドを使うと、1行のコードで全要素をまとめて初期化できて便利です。 boolean配列の宣言構文 boolean[] booleanA
-
JavaオブジェクトをJSONに変換する方法(Jackson・Gsonの使い方)
このチュートリアルでは、JavaオブジェクトをJSON形式に変換する方法を、定番ライブラリであるJacksonとGsonの2つを使って解説します。 サンプルとして使用するのは、ごく標準的なPOJO(Plain Old Java Object)であるPersonクラスです。Personオブジェクトを作成したら、それぞれのライブラリを使ってJSONへ変換してみましょう。 Person.java import java.util.List; import java.util.Map; public class Person { String name; Integer age;