HOWTO · Java

Mehrere Variablen in Java initialisieren

Wir stellen Ihnen vor, wie Sie in Java mehrere Variablen oder Objekte mit demselben Wert initialisieren können.

In diesem Artikel gehen wir die Schritte durch, die zu befolgen sind, wenn wir mehrere Variablen mit demselben Wert in Java initialisieren wollen. Wir werden besprechen, warum wir nicht alle Variablen bei der Deklaration mit demselben Wert initialisieren können.

Initialisieren mehrerer String-Variablen mit demselben Wert in Java

Im folgenden Beispiel 1 deklarieren wir die Variablen one, two und three vom Typ String und initialisieren dann alle drei Variablen mit demselben Wert. Wir tun dies durch verkettete Zuweisung. Das bedeutet, dass wir allen Variablen, die rechts vom Zuweisungsoperator stehen, den Wert der ganz linken Variable zuweisen.

  • Beispiel 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);
  }
}

Ausgabe:

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

Wenn unsere Anforderung darin besteht, die Variablen während der Deklaration zu initialisieren, können wir die verkettete Zuweisung verwenden, wie wir es unten getan haben. Dies verringert jedoch die Lesbarkeit des Programms, da möglicherweise mehrere Entwickler an demselben Projekt arbeiten.

  • Beispiel 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);
  }
}

Ausgabe:

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

Mehrere Objekte mit der gleichen Klasse in Java initialisieren

Wir haben gesehen, dass wir mit der Technik der verketteten Zuweisung in allen drei String-Variablen denselben Wert speichern können. Aber können wir dasselbe tun, wenn wir die Referenz desselben Klassenobjekts in mehreren Variablen speichern wollen? Schauen wir mal.

Wenn wir eine Variable mit einem Klassenkonstruktor mit dem Schlüsselwort new initialisieren, wird diese Variable als object bezeichnet und sie zeigt auf die Klasse. Wir können mehrere Objekte mit der gleichen Klasse durch verkettete Zuweisung erstellen, aber es wird auf die gleiche Referenz zeigen, was bedeutet, dass, wenn wir den Wert von firstObj ändern, das secondObj auch die gleichen Änderungen widerspiegelt.

Wir können das folgende Beispiel überprüfen, in dem die drei Objekte - firstObj, secondObj und thirdObj zusammen zugewiesen werden, aber fourthObj wird separat zugewiesen. Die Ausgabe zeigt den Unterschied.

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;
}

Ausgabe:

Second Object
Second Object
Second Object
Fourth Object