Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich habe ein wenig mit Gettern und Settern ausprobiert (wenn das was ich gemacht habe falsch sein mag) und habe ein Fehler im Programm, weiß aber nicht woher der Fehler kommt.
Meine Ausgaben beim Ausführen:
Es ist eine andere Zahl.
Es ist eine andere Zahl.
21
Source Code:
Main-Klasse:
Java:
package de.kenta1561.main;
public class Main {
public static void main(String[] args) {
AListener al = new AListener();
al.setValue(21);
al.getValue();
int thisValue = al.getValue();
System.out.println(thisValue);
}
}
die zweite Klasse:
Java:
package de.kenta1561.main;
public class AListener {
private int value;
void setValue(int x) {
value = x;
}
int getValue() {
if(value == 1) {
System.out.println("Es ist die eins.");
} else {
System.out.println("Es ist eine andere Zahl.");
}
return value;
}
}
Ich sehe keinen Fehler in deinen Programm. Aber du verratest uns ja auch nicht was an der Ausgabe falsch sein soll daher kann man auch schwer auf Fehlersuche gehen.
An Joose: Ich wollte eigentlich, dass nur einmal "Es ist eine andere Zahl" ausgegeben wird statt zweimal, aber kneitzel hat ja die Frage schon beantwortet, trotzdem danke
An dieser Stelle ist es wahrscheinlich besser wenn dein AListener nur ein true oder false zurückgibt.
Und die Methode dann isOne() oder ähnlich heißt. In den meisten Fällen möchte man das eine Getter-Methode nur den Wert der Instanz zurückgibt. Für weiteres Spezialverhalten erstellt man sich das spezielle Methoden. Für die Initialisierung kann man an dieser Stelle auch den Konstruktor verwenden public AListener(int value);
Java:
//...
AListener al = new AListener(21);
if(al.isOne()) {
System.out.println("Es ist die eins.");
} else {
System.out.println("Es ist eine andere Zahl.");
}
Java:
public class AListener {
private int value;
public AListener(int value) {
this.value = value;
}
public void setValue(int x) {
value = x;
}
public int getValue() {
return value;
}
public boolean isOne() {
return getValue() == 1;
}
}
Natürlich könnte man sich das auch schenken und einfach if(al.getValue() == 1){} abfragen aber das ließt sich nicht so schön^^