Instanz einer Klasse während if-Abfrage erzeugen und bei zweiter if-Abfrage wiederverwenden

CodeIt

Aktives Mitglied
Hallo,
gibt es eine Möglichkeit bei unten angefügten Code, nur einmal eine Instanz
der Klasse Addieren zu erzeugen?
Bei diesem Code handelt es sich nur um eine kurze Demonstration zu einem
aufwendigeren Programm, d.h. die zweimalige if(hello == true)-Abfrage sollte
so stehen bleiben, aber nur einmal eine Instanz von Addieren erzeugt werden.
Die Instanz von Addieren sollte also erst wenn die erste if(hello == true)-Abfrage
tatsächlich true ergibt, erzeugt werden und bei der zweiten if(hello==true)-Abfrage
verwendet werden, also keine neue erzeugt werden.

Code:
import Addieren.Addieren;

public class MainClass {
    public static void main(String[] args) {       
        boolean hello = true;
       
        if (hello == true){
            Addieren add = new Addieren();
            int x = 10;
            int y = 5;
            int z = add.adding(x, y);
            System.out.println(z);
        }
        
        //weiterer Code 

        if(hello == true){
            Addieren add = new Addieren();
            int b = 4;
            int a = 3;
            int c = add.multi(b, a);
            System.out.println(c);
        }   
    }
}

Vielen Dank
 
Danke. Aber gibt es denn keine Möglichkeit die Deklaration und Initialisierung
erst in der ersten if-Anweisung zu machen, und dann das erstellte Objekte, wenn die zweite if-Anweisung ebenfalls true, wiederzuverwenden. D.h. das Objekt soll erst initialisiert werden
wenn die erste if-Anweisung true ergibt, und bei der zweiten if-Anweisung, wenn diese ebenfalls true ergibt, wiederverwendet werden können.
 
Deklariere es doch vorher und initialsier es in deiner if?

Java:
public class MainClass {
    public static void main(String[] args) {
        boolean hello = true;

        Addieren add = null;
        if (hello == true) {
            add = new Addieren();
            int x = 10;
            int y = 5;
            int z = add.adding(x, y);
            System.out.println(z);
        }

        //weiterer Code

        if (hello == true) {
            if (add == null) add = new Addieren();
            int b = 4;
            int a = 3;
            int c = add.multi(b, a);
            System.out.println(c);
        }
    }
}

Wenn deine if-Bedingung 2x gleich ist, dann kannste dir die null-Abfrage auch sparen.
 
ok, Vielen Dank. Das mit dem Singleton ist sehr interessant, werde ich
vielleicht an anderer Stelle einbauen.
Dann werde ich wohl den Vorschlag von Tarrew umsetzen.
 

Zurück
Oben