Auf variable einer anderen Klasse zugreifen ohne weiteres Objekt zu erzeugen

Hallo,

ich möchte gerne von meiner Class2 aus auf eine Variable in Class1 zugreifen mit Hilfe von einer Getter-Methoden. Aber ich möchte kein weiteres Objekt von Class1 in der Class2 erzeugen.

Folgendes habe ich versucht, aber leider funktioniert es nicht:

Hier die Class1:

package test;

public class Class1 {

private static int wert;

public Class1(){
	
}

public static void main(String[] args) {
	
	Class1 klasse1 = new Class1();
	Class2 Klasse2 = new Class2();

	wert = 23;
}

    public static int getWert() {
	    return wert;
   }
}

Hier die Class2:

package test;

public class Class2 {

    public Class2() {

	    System.out.println(Class1.getWert());
   }	
}

Wenn ich ein Objekt erstelle von Class1, dann funktioniert es wunderbar.
Ohne Objekt ist die Ausgabe immer 0.

Wie muss ich das machen?

VG

1 „Gefällt mir“

Versuche es so:

public class Class1 {

    private int wert;

	public Class1(){
		this.wert = 24;
		Class2 c2 = new Class2(this);
	}
	
    public int getWert() {
	    return wert;
    }	
   

	public static void main(String[] args) {
		new Class1();
	}
}
public class Class2 {

    public Class2() {
    
    }

    public Class2(Class1 c1) {
	    System.out.println(c1.getWert());
    }	
}
1 „Gefällt mir“

Also wie in deinem Beispiel in der main Methode? Dort sollte allerdings auch nicht 23 ausgegeben werden, da der Wert erst gesetzt wird, nachdem die Ausgage stattfindet.

Grundsätzlich ist das was du vorhast eher eine ungute/unsaubere Idee.
Nebenbei: wert gehört zu keinem Objekt von Class1 selbst wenn du eines anlegst sondern zur Klasse

1 „Gefällt mir“

:shushing_face: