Java のコンストラクターで配列を初期化する
このチュートリアルでは、Java のコンストラクターで配列を初期化する方法を紹介し、トピックを理解するためのサンプルコードもいくつか示します。
配列は、同様のタイプのデータを格納するために使用されるインデックスベースのデータ構造です。Java では、配列を使用してプリミティブ値とオブジェクト値を格納できます。配列も Java のオブジェクトであり、デフォルト値で初期化されます。たとえば、int の場合は 0、float / double の場合は 0.0、String /オブジェクト値の場合は null です。
配列がインスタンス変数として宣言されている場合、オブジェクトが呼び出されたときにデフォルト値で初期化されます。いくつかの例を見てみましょう。
Java のコンストラクタで配列を初期化する
コンストラクターで配列を初期化することは、Java が暗黙的に行うため、デフォルト値で初期化されている場合は意味がありません。
この例では、クラスで配列を宣言し、コンストラクター内で初期化したため、コンストラクターが呼び出されたときに配列が初期化されます。以下の例を参照してください。
public class SimpleTesting {
int a[];
public SimpleTesting() {
a = new int[] {0, 0, 0};
}
public static void main(String[] args) {
SimpleTesting st = new SimpleTesting();
System.out.println("Array Elements");
// Accessing elements
for (int i : st.a) {
System.out.println(i);
}
}
}
出力:
Array Elements
0
0
0
コンストラクターを使用せずに上記のタスクを実行すると、両方のコード例で同じ出力が得られることがわかります。ここでは初期化値については触れませんでしたが、Java は暗黙的にこれを行います。以下の例を参照してください。
public class SimpleTesting {
int a[] = new int[3];
public static void main(String[] args) {
SimpleTesting st = new SimpleTesting();
System.out.println("Array Elements");
// Accessing elements
for (int i : st.a) {
System.out.println(i);
}
}
}
出力:
Array Elements
0
0
0
コンストラクターで配列を新しい値で初期化する
デフォルト以外の新しい値を設定する場合は、コンストラクターを使用して初期化することをお勧めします。この例では、他の値を渡し、コンストラクターが呼び出されたときに配列が初期化されます。以下の例を参照してください。
public class SimpleTesting {
int a[];
public SimpleTesting() {
a = new int[] {5, 5, 5};
}
public static void main(String[] args) {
SimpleTesting st = new SimpleTesting();
System.out.println("Array Elements");
// Accessing elements
for (int i : st.a) {
System.out.println(i);
}
}
}
出力:
Array Elements
5
5
5
Java のコンストラクタで配列を初期化する
コンストラクターで配列を作成して、宣言と初期化の 2 段階のプロセスを回避することもできます。1つのステートメントでタスクを実行します。この例では、コンストラクター内に配列を作成し、同時にそれにアクセスして配列要素を表示しました。以下の例を参照してください。
public class SimpleTesting {
public SimpleTesting() {
int a[] = {0, 0, 0};
System.out.println("Array Elements");
// Accessing elements
for (int i : a) {
System.out.println(i);
}
}
public static void main(String[] args) {
SimpleTesting st = new SimpleTesting();
}
}
出力:
Array Elements
0
0
0