wann braucht man eine getmethode? (bluej/java)

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Getter- bzw. Settermethoden verwendet man zur Datenkapselung. Das ist das zentrale Thema bei der objektorientieren Programmierung.

Der Hintergedanke ist, dass "fremde" Objekte nicht direkt auf die "eigenen" Daten (Attribute) zugreifen dürfen, sondern nur über Getter/Setter. Dann kann man nämlich im Getter/Setter bestimmte Regeln erzwingen, und diese auch nachträglich oder durch Vererbung anpassen. D.h. fremde Klassen können nichts anstellen, was sie nicht sollen.

Aus der gleichen Klasse darfst du natürlich auf die privaten Attribute auch direkt zugreifen. Wenn du dabei was falsch machst ist das ja deine Sache, da hilft dir eh keine Kapselung ;-)

Achte auf die Unterscheidung von Objekt und Klasse. Wenn du zwei Objekte fisch1 und fisch2 hast, gehören beide zur Klasse Fisch, sind aber unterschiedliche Objekte.

Du benötigst die getter-Methode genau dann, wenn du von auf ein Attribut von einem anderen Objekt zugreifen willst. Innerhalb eines Objekt kannst du direkt auf das Attribut zugreifen.

Es ist eine Konvention, statt public/protected Variablen setter und getter für diese zu erstellen.

Es hat auch den großen Vorteil, dass man genutzte aufrufe überwachen kann.

/**
* Diese Klasse repräsentiert ein int-Objekt, bei dem Zugriffe gezählt werden.
*/
public class WatchedInt{

    private int value=0;
    private int uses=0;

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

    public int getValue(){uses++;return value;}
    public int setValue(int value){uses++;this.value=value;}
    public int getUses(){return uses;}

}

Außerdem kannst du so Werte zurück geben, ohne dem Programmierer die Vollmacht über diese Werte zu gestatten.

Fast keine Javaklasse hat öffenliche Variablen.

MAn muss nicht man kann aber das kommt immer auf dein Programm an ob es benötigt ist oder nicht