# get- bzw set- Methode



## Taegukmaster (21. Sep 2007)

Ich programmiere seit ca einem Jahr in der Schule...
Zur Zeit arbeiten wir mit get und set Methoden...
Mein Problem an der Sache ist folgendes:
Ich suche nach einer einfachen set/get Methode um mir anzusehen wie diese arbeiten...
Wenn ihr mir einen Link auf eine Erklärung geben könntet oder sogar 2 einfache Methoden erstellen könntet würde es mich sehr freuen...
Ich hoffe ich konnte euch mein Problem genau genug beschreiben...
MfG Tobi


----------



## maki (21. Sep 2007)

public class demo {

     private String eigenschaft;

     public String getEigenschaft() {
          return eigenschaft;
     }

     public void setEigenschaft( String neuerWert ) {
          this.eigenschaft= neuerWert;
     }

}

Man beachte die Groß- und Kleinschreibung der Eigenschaft und der getter/setter.


----------



## y0dA (21. Sep 2007)

Gibt es auch "schwere" Get/Set Methoden?

Man sollte keine Logik in jenen Methoden einbauen!


----------



## maki (21. Sep 2007)

> Gibt es auch "schwere" Get/Set Methoden?


Keine Ahnung was du meinst, vom Gewicht her sind die alle gleich 

Man sollte halt darauf achten, keine Referenzen auf nicht-immutables zurückzugeben.



> Man sollte keine Logik in jenen Methoden einbauen!


Klar kann man da Logik einbauen, genau dafür sind sie ja da, zur Kapselung.


----------



## tfa (21. Sep 2007)

y0dA hat gesagt.:
			
		

> Man sollte keine Logik in jenen Methoden einbauen!



Warum nicht? Lazy-Initialization in Gettern und Event-Propagation in Settern ist doch üblich.


----------



## y0dA (21. Sep 2007)

maki hat gesagt.:
			
		

> Klar kann man da Logik einbauen, genau dafür sind sie ja da, zur Kapselung.



Was hat Kabselung damit zu tun dass man in Getter/Setter keinen Logik reinschreiben sollte?

Mir wurde beigebracht, dass man Getter/Setter nur für die Kabselung eines Objektes einer Klasse benutzt um jenes Objekt eben zu setzen oder zu "holen". Weiters hat selbiger Professor gemeint, dass in jenen Methoden keine Logik eingebaut werden sollte, da dass die Wiederverwendbarkeit einschränkt.

Bezugnehmend Event-Propagation,mein Statement von vorhin sollte in Bezug auf 0815 Klassen stehen und nichts mit getter/setter für eine View (Stichwort myFacest) zu tun haben.

Zu  Lazy-Initialization: Manchmal wohl unumgänglich.

Naja jeder wie er meint  :lol:


----------



## maki (21. Sep 2007)

> Was hat Kabselung damit zu tun dass man in Getter/Setter keinen Logik reinschreiben sollte?


Na wenn ich eine Methode aufrufe, weis ich doch nicht ob logik ausgeführt wird, weil das gekapselt ist, hauptsache ich bekomm etwas wenn ihc einen getter aufrufe und ich setze etwas wenn ich einen setter aufrufe.



> Mir wurde beigebracht, dass man Getter/Setter nur für die Kabselung eines Objektes einer Klasse benutzt um jenes Objekt eben zu setzen oder zu "holen". Weiters hat selbiger Professor gemeint, dass in jenen Methoden keine Logik eingebaut werden sollte, da dass die Wiederverwendbarkeit einschränkt.


Ich würde sagen, dein Prof ist verwirrt  
Anders gesagt, er hat keine Ahnung, sondern nur eine Blähung.

Falls dein Professor allerdings meinte, dass "Business Logik" dort nicht ausgeführt werden sollte, könnte was dran sein, diese sollte in EJBs stecken, die POJOs (Domain Model) brauchen allerdings ihre eigene "kleine" logik.
Das ist aber sehr speziell


----------



## Taegukmaster (21. Sep 2007)

Mit einfach meinte ich ohne irgendwelche Funktionen, die nichts mit dem eigetlichen "holen" zu tun haben...
Also genau so wies oben steht... 
Danke für die schnelle Antwort
MfG Tobi

Edit: kann man bei der set Methode als Parameter einen Verweis einer get Methode einbauen? (eigentlich bin ich mir ziemlich sicher aber lieber einma gefragt als dass ich irgenwann in einer lausur dran verzweifel^^)

"Man beachte die Groß- und Kleinschreibung der Eigenschaft und der getter/setter." Is da nich alles wie immer? Methoden=klein anfanegn; Variablen= klein anfagen... oder is da ne Besonderheit?


----------



## @x.l (21. Sep 2007)

maki meinte, dass darauf zu achten ist:
    - set*E*igenschaft() und nicht seteigenschaft()
    - get*E*igenschaft() und nicht geteigenschaft()

zu schreiben



> kann man bei der set Methode als Parameter einen Verweis einer get Methode einbauen?



Meinst du das so:

```
setIrgendwas(getWasAnderes());
```


----------



## Taegukmaster (23. Sep 2007)

Jap das meinte ich... Funktioniert das so?
Eigentlich schon oder? damit würde ja nur der Wert ausa einer Variable geholt werdenund in die "Irgendwas" gesetzt werden oder?


----------



## merlin2 (23. Sep 2007)

Das sollte funktionieren.


----------



## byte (23. Sep 2007)

Probieren geht über studieren.


----------

