(Habe nach dem Lesen der Frage kurz hochgescrollt, um sicherzustellen, dass du wirklich von Java redest…)
Methodennamen fangen mit einem kleinbuchstaben an. Ein ‘setter’ sollte nicht viel machen, außer ein Field (eine Variable) zu setzen, bzw. ggf. vorher den übergebenen Wert auf Gültigkeit prüfen. Poste vielleicht nochmal eine kleine Dummy-Klasse, die zeigt, welche Fields und Methoden dir vorschweben, und wie du die verwenden wollen würdest…
[QUOTE=Tom3243254]Was ist von der Konvention her korrekt?[/QUOTE]Keine getter/Setter einzusetzen.
Gib den String als Ergebnis der Methode an den Aufrufer zurück:public String ErgebnisTextErmitteln(int getErgebnisZahl) { String ergebnisText; // ergebnisText=... return ergebnisText; }
ich bin mir nicht ganz sicher wie ich mit einer Setter-Methode umgehen soll.
public static void setErgebnisText(String ergebnisText) {
Management.ergebnisText = "Sehr negativ!";
[/QUOTE]
Getter und Setter sind wichtige Elemente zur Kapselung und verbessern die Wartbarkeit des Programms. Zumindest Klassenübergreifend würde ich ohne guten Grund keinen direkten Zugriff auf globale Variablen zulassen. Wenn später irgendwas am Zugriff modifiziert werden muss (zusätzliche Prüfung, etc) muss sonst auch der Aufrufer immer mit geändert werden.
Im gegebenen Beispiel sieht es so aus, als würde innerhalb der Klasse mit setter gearbeitet werden, aber die String-Variable der Management-Klasse direkt modifiziert.
Ich würde für den Text prinzipiell keine Setter verwenden, sondern ihn immer “live” ausrechnen lassen. Denn falls sich die Zahl mal ändert, musst du dich dann nicht darum kümmern, den entsprechenden Text überall neu zu setzen. Und wenn Zahl und Text eh so eng gekoppelt sind, wie wäre es mit einer Klasse “Ergebniss”:```public class Ergebniss{
private final int value;
public Ergebniss(int value){
this.value = value;
}
public int getValue(){return value;}
public String asText(){
String result;
if(0.5 >= value && value <= 1.0){result = “Sehr positiv!”;}
else if(0.3 >= value && value < 0.5){result = “Positiv!”;}
…
return result;
}
}```
Ein Setter an sich sollte prinzipiell so aussehenpublic void setX(T x){ this.x=x; }
[QUOTE=Natac]
Ein Setter an sich sollte immer nur so aussehen[/quote]
Wenn er immer so aussehen sollte, dann braeuchts keine Setter…
Natuerlich gibts Gruende, warum man Setter macht, u.a. wenn man noch interne Flags updaten muss oder irgendwelche Input Checks macht (z.B. IllegalArgumentException fuer int < 0).