Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hi,

ich lerne momentan JAVA in der Uni. Was ich aber noch nicht verstanden habe is die Funktion für Getter und Setter Methoden, Ok, ich weiß das ich mit Setter Methoden Werte Setze und mit Getter welche auslesen kann. Aber wofür brauche ich das jetzt denn ganze genau?

danke ;)

Geschrieben

egal ob in Java oder einer anderen OOP-sprache implementiert: getter und setter dienen dazu, eine kapselung aufrechtzuerhalten und den zugriff auf elemente eines objekts nach aussen hin intransparent zu machen; d.h. der getter gibt ein objektattribut zurück, verrär aber nicht, welches dies is; beim setter ist das analog dazu.

eine solche implementierung kann zweckmässig sein, muss aber nicht (insbesondere in hinblick auf änderungen der gekapselten funktionlität, weil sie intransparenz herstellen).

s'Amstel

Geschrieben (bearbeitet)
Aber wofür brauche ich das jetzt denn ganze genau?

Bei Objekten der OOP hast du intern Variablen, auch Felder genannt. Deine Objekte sollen aber nicht komplett offen nach außen sein, also sind diese eigentlich immer nur innerhalb des Objekts selbst sichtbar (private). Manche dieser Felder sollen aber von außen gefüllt oder ausgelesen werden. Die einfachste, aber auch schlechteste MEthode dazu ist diese Felder auf public zu setzen. Die bessere Methode ist dafür getter und setter Methoden zu schreiben, über die das dann erledigt wird.

Weiterhin kannst du in gettern und settern auch noch mehr tun als nur den Variablenwert direkt setzen oder auslesen. Du kannst übergebene Werte etwa prüfen, oder Werte je nach Zustand des Objekts ausgeben etc.

Außerdem, wie schon gesagt wurde, können diese Werte bei gettern auch sonst wo her kommen und das muss dich auch gar nicht interessieren wenn du den getter aufrufst. Genausogut muss dich nicht interessieren wohin die Werte vom setter gehen.

Wobei ich da die getter und setter bei Delphi (oder auch die bei C#) viel besser finde (und viel klarer für das Verständnis) als die bei Java.

In Delphi definierst du in der Klasse eine Property (also eine Eigenschaft des Objekts die dann (wenn public) nach außen hin sichtbar ist) und dann bestimmst du was beim lesenden oder beim schreibenden Zugriff darauf gemacht werden soll bzw welche Funktion aufgerufen wird. Bei C# ist das ähnlich, nur dass du da keine Funkion dranhängen kannst, weil es da ja, wie in Java, keine Pointer mehr gibt ;) Nur in Java schreibt man eine Variable und ganz unabhängig davon eine Funktion die als getter bzw setter funktioniert und nur durch einen bestimmten Namen als solcher erkenntlich ist.

Bearbeitet von JesterDay
Geschrieben

Viele viele Frameworks in Java setzten außerdem vorraus, dass die Plain Old Java Objects verwendest welche eben ihre Variablen mit Getter- und Settermethoden kapseln. Du solltest diesen Stil immer voll durchziehen! Das letzte aller Mittel ist eine öffentliche Variable!

Geschrieben
dass die Plain Old Java Objects verwendest welche eben ihre Variablen mit Getter- und Settermethoden kapseln.
POJOs definieren sich allerdings nicht alleine über die Kapselung von Fields über getter/setter!
Geschrieben
Viele viele Frameworks in Java setzten außerdem vorraus, dass die Plain Old Java Objects verwendest welche eben ihre Variablen mit Getter- und Settermethoden kapseln. Du solltest diesen Stil immer voll durchziehen! Das letzte aller Mittel ist eine öffentliche Variable!

Dem "viele" möchte ich aber widersprechen. Auf Anhieb fällt mir nur sowas wie Hibernate, Seam und EJB ein. Aber Swing, JAX, etc. benötigen keine POJOs.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...