get/set- Methoden (informatik)?

5 Antworten

Getter und Setter sind im Grunde festlegbare Schnittpunkte - darfst du einen Wert bekommen, einen setzen oder beides?

Thema der Datenkapselung. Denn du beziehst dann die Attribute nur über diese Getter und Setter.

Ist eine Organisationssache. Verhält sich mit Konstanten ähnlich. Könnte auch eine Variable nehmen und kein const vorsetzen. Aber ich möchte im Team, dass die Variable nicht geändert wird - also const.

Woher ich das weiß:Berufserfahrung – 💻 Zertifizierter Sr. Cloud Engineer im IT-Consulting
Von Experte Dultus, UserMod Light bestätigt

Hey,

ganz einfach, stell dir vor du hättest diese nicht, dann könnte praktisch jeder Programmierer, der an diesem Projekt arbeitet, jeden beliebigen Wert in die gegeben Variable eines Objekts einsetzen.

Dies ist nicht immer sinnvoll, deshalb macht man diese Instanzvariablen auf private und erstellt Getter und Setter dafür.

Die Setter sind der Hauptpunkt hierbei, über diese Methode kannst du durch Abfragen kontrollieren, welche Werte gesetzt werden dürfen. So kannst du Beispielsweise verhindern, dass einem Objekt Fahrzeug mehr als 4 Räder als Werte gesetzt werden.

Dadurch, dass du die Variablen auf private hast, benötigst du dann Getter, welche es dir ermöglichen, diese zu erhalten.

Das ganze nennt sich Datenkapselung, wenn du mehr darüber wissen möchtest: Im Internet gibt es unzähliges dazu.

Lg

Benni

Woher ich das weiß:Studium / Ausbildung – Gelernter Fachinformatiker Anwendungsentwicklung

Mit Settern und Gettern verfolgt man in der Informatik das Konzept der Kapselung, beim dem Attribute eines Objekts nur über entsprechende Methoden des Objekts manipuliert werden dürfen. Dem Verwender können also Interna der Klasse egal sein ---> Geheimnisprinzip. Allgemein sollte in Attributen von Objekten nicht direkt herumgepfuscht werden, da manche Zahlenwerte beispielsweise nicht eingesetzt werden dürfen (z.B 0 im Nenner einer Division). Der Setter eines Attributs kann eine Prüfung auf alle Parameter ausführen. Hier: Falls x = 0 gilt, dann soll x nicht mit 0 initialisiert werden. So wird ein flüssigerer Umgang im Programm gewährleistet, da die Anfälligkeit für Fehler im jeweiligen Programm indirekt gesenkt wird.

Als Beispiel hier ein Klasse:

public class Test {

private int x;

public void setX(int a) {

x=a;

}

public void getX() {

return x;

}

}

Du kannst im Setter z.B. steuern, dass Randbedingungen eingehalten werden. Wenn dein Schiff 1000 Passagiere fasst, musst du den 1001. setPassagier-Versuch ablehnen. Um beim Beispiel zu bleiben: Du kannst im Setter prüfen, ob der Passagier nicht bereits mit einem anderen Schiff verbunden ist usw.

Getter und Setter sind Methoden, die die Datenkapselung unterstützen. Objektattribute selbst sollten einen eingeschränkten Zugriff haben, welcher über die Getter- und Setter jedoch "nach außen hin" ermöglicht wird