Java で複数の変数を初期化する

Rupam Yadav 2023年10月12日
  1. Java で同じ値を持つ複数の String 変数を初期化する
  2. Java で同じクラスで複数のオブジェクトを初期化する
Java で複数の変数を初期化する

この記事では、Java で複数の変数を同じ値で初期化したい場合の手順を解説します。また、宣言時に同じ値の変数をすべて初期化できない理由についても説明します。

Java で同じ値を持つ複数の String 変数を初期化する

下の例 1 では、String 型の変数 onetwothree を宣言し、3つの変数を同じ値で初期化しています。これは連鎖代入で行っています。つまり、左端の変数の値を代入演算子の右端にあるすべての変数に代入することを意味します。

  • 例 1:
package com.company;

public class Main {
  public static void main(String[] args) {
    String one, two, three;
    one = two = three = "All three variables will be initialized with this string";

    System.out.println(one);
    System.out.println(two);
    System.out.println(three);
  }
}

出力:

All three variables will be initialized with this string
All three variables will be initialized with this string
All three variables will be initialized with this string

宣言中に変数を初期化する必要がある場合、以下のように連鎖代入を使用することができます。しかし、同じプロジェクトで複数の開発者が作業している可能性があるため、プログラムの可読性が低下します。

  • 例 2:
package com.company;

public class Main {
  public static void main(String[] args) {
    String one, two, three = two = one = "All three variables will be initialized with this string";

    System.out.println(one);
    System.out.println(two);
    System.out.println(three);
  }
}

出力:

All three variables will be initialized with this string
All three variables will be initialized with this string
All three variables will be initialized with this string

Java で同じクラスで複数のオブジェクトを初期化する

連鎖代入法を使って、3つの文字例変数すべてに同じ値を保存できることがわかりました。しかし、同じクラスオブジェクトの参照を複数の変数に保存したいときに同じことができるでしょうか?見てみましょう。

クラスのコンストラクタで new キーワードを使って変数を初期化すると、その変数は オブジェクト と呼ばれ、クラスを指し示します。連鎖代入を使って同じクラスで複数のオブジェクトを作成することもできますが、同じ参照を指すことになるので、firstObj の値を変更すると secondObj にも同じ変更が反映されます。

以下の例では、firstObjsecondObjthirdObj の 3つのオブジェクトが一緒に代入されているが、fourthObj は別々に代入されていることを確認することができます。出力はその違いを示しています。

package com.company;

public class Main {
  public static void main(String[] args) {
    SecondClass firstObj, secondObj, thirdObj;
    firstObj = secondObj = thirdObj = new SecondClass();

    firstObj.aVar = "First Object";

    secondObj.aVar = "Second Object";

    SecondClass fourthObj = new SecondClass();
    fourthObj.aVar = "Fourth Object";

    System.out.println(firstObj.aVar);
    System.out.println(secondObj.aVar);
    System.out.println(thirdObj.aVar);

    System.out.println(fourthObj.aVar);
  }
}

class SecondClass {
  String aVar;
}

出力:

Second Object
Second Object
Second Object
Fourth Object
著者: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

関連記事 - Java Variable