Variable wird einfach so wieder auf "null" gesetzt

Barthi666

Mitglied
Hallo zusammen,
Ich habe folgendes Problem und zwar wird eine Variable, die sich in der Klasse "Kunde" befindet in der Klasse "PWAbheben" deklariert. Jetzt brauche ich den Inhalt dieser Variablen allerdings in der Klasse "Abheben" nochmal aber jedesmal wenn ich diese abrufen will ist diese wieder "null". Die Kontonummer wird in der Klasse PWAbheben deklariert:

Java:
objKunde.setKTO(tfKTO.getText());

Das funktioniert soweit auch wunderbar.
Aber wenn ich jetzt in meiner Klasse Abheben (wo der eigentliche Abhebevorgang statt findet) die Kontonummer "benutzen" will ist sie immer wieder auf "null" gesetzt obwohl das PWAbheben Fenster immernoch offen ist. In folge dessen habe ich es mit folgendem Befehl versucht:

Java:
PWAbheben FensterPW = new PWAbheben();
	objKunde.setKTO(FensterPW.tfKTO.getText());

Das funktioniert leider auch nicht. Allerdings wird wenn ich diesen Befehl anwende nicht "null" ausgespuckt sondern gar nix, wenn ich die KTO in der Console ausgeben lassen will.
Vielen Dank schonmal für die Hilfe!
 
Java:
PWAbheben FensterPW = new PWAbheben();
    objKunde.setKTO(FensterPW.tfKTO.getText());
Du erstellst hier eine neue Instanz. Dessen Variablen sind dann natürlich noch nicht gesetzt.
 
Java:
PWAbheben FensterPW = new PWAbheben();
    objKunde.setKTO(FensterPW.tfKTO.getText());
Du erstellst hier eine neue Instanz. Dessen Variablen sind dann natürlich noch nicht gesetzt.

Aber da das Fenster noch offen ist sollte sich die Variable dadurch doch neu deklarieren lassen oder? Weil die Kontonummer steht noch in tfKTO
 
Jedes PWAbheben hat seine eigenen Variablen. Nur weil ein anderes Fenster noch offen heißt das nicht dass deine neu erstellte Instanz die gleichen Werte hat.
 
Du musst dafür sorgen dass du die Referenz auf das deine Instanz an die Stelle übergibst die da was auslesen möchte.
 
Entweder im Konstruktor oder im Methodenaufruf übergeben.
Vllt hilft dir folgendes Beispiel:
Java:
public static void main(String[] args) throws Exception {
	Value v1 = new Value(1);
	Value v2 = new Value(2);
	 
	ValueOutput vo = new ValueOutput();
	vo.print(v1);
	vo.print(v2);
}
Java:
public class Value {

	private final int value;

	public Value(int value) {
		this.value = value;
	}

	public int getValue() {
		return value;
	}
}
Java:
public class ValueOutput {

	public void print(Value v) {
		System.out.println("Value: " + v.getValue());
	}
}
 
Ich verstehe es leider immernoch nicht ganz. Hab aber auch grad mal gegoogelt und normalerweise sollte es so funktionieren wie ich es mache, da sich die Kontonummer ja schließlich in der Klasse Kunde befindet und ich die Kontonummer da ja auch wieder rausholen möchte. Oder verstehe ich das ganze total falsch?
 

Zurück
Oben