setter

Network

Top Contributor
Naja setter (und getter) werden eingesetzt wenn Objekte von anderen Objekten die Variablen ändern (und lesen) können sollen.
Wenn du bspw. eine Klasse hast, mit einer public Variable, so kann jedes andere Objekt diese Variable nach herzenslust verändern, bzw. der Coder kann das programmieren. Aber eventuell möchtest du garnicht dass die Variable von anderen Objekten verändert wird -> Deshalb definierst du dann keinen setter oder nur einen eingeschränkten.
Man kann in settern auch überprüfen ob das Objekt, dass die Methode aufgerufen hat, überhaupt die Variable(n) verändern darf.
Das alles hat also so eine Art Sicherheitssinn.

Außerdem kann man hier noch zusätzliche Dinge machen, die notwendig sind wenn eine Variable verändert wird.
JFrame hat bspw. die Methode setVisible(boolean), hier könnte man dann dazu noch andere Methoden aufrufen wie "pack()" damit das Fenster zuvor noch größenmäßig angepasst wird.
(Ob es das tatsächlich macht, weiss ich nicht, bin nicht so mit GUIs auf Swingbasis vertraut)

Gruß
Net
 

steeeeel

Mitglied
Naja setter (und getter) werden eingesetzt wenn Objekte von anderen Objekten die Variablen ändern (und lesen) können sollen.
Wenn du bspw. eine Klasse hast, mit einer public Variable, so kann jedes andere Objekt diese Variable nach herzenslust verändern, bzw. der Coder kann das programmieren. Aber eventuell möchtest du garnicht dass die Variable von anderen Objekten verändert wird -> Deshalb definierst du dann keinen setter oder nur einen eingeschränkten.
Man kann in settern auch überprüfen ob das Objekt, dass die Methode aufgerufen hat, überhaupt die Variable(n) verändern darf.
Das alles hat also so eine Art Sicherheitssinn.

Außerdem kann man hier noch zusätzliche Dinge machen, die notwendig sind wenn eine Variable verändert wird.
JFrame hat bspw. die Methode setVisible(boolean), hier könnte man dann dazu noch andere Methoden aufrufen wie "pack()" damit das Fenster zuvor noch größenmäßig angepasst wird.
(Ob es das tatsächlich macht, weiss ich nicht, bin nicht so mit GUIs auf Swingbasis vertraut)

Gruß
Net

und wie ist es wenn die variablen einer klasse private sind und es ist ein setter gestellt? kann ich dann die variable aus einer anderen klasse aus mit einem setter verändern oder wo ist der sinn dahinter? Dass ich das bei public variablen machen kann ist ja verständlich nur warum eine variable private setzten und dann einen setter erstellen (getter verständlich zum lesen da kann ja nix passieren oder verändert werden mit)
 

mrbela

Bekanntes Mitglied
Wenn Du eine private-Variable mit einem Setter hast, ist dies nicht gleichwertig mit ner public-Variable.

Der Unterschied liegt darin, dass Du mit Hilfe der setter-methode gewisse Dinge bspw. überprüfen kannst. Du kannst z.B. schauen, ob bei z.B. ner Methode setZahl(int i) die neue Zahl i in einem gewissen Bereich ist (if(i <= 0) usw.), oder wie Network schon gesagt hast, könnte man bei der setter-Methode direkt noch eine weitere, falls diese auch notwendig ist, aufrufen.

Das alles geht nicht, wenn Du den Zugriff auf eine Variable auf public setzt... Hier kann man rein theoretisch jeden Wert setzen, den der Datentyp der Variable hergibt.. Ohen die Möglichkeit zu überprüfen, ob der gesetzte Wert sinnvoll, bzw. erlaubt ist (denkt man da bspw. an die Division durch 0 o.Ä.).

vlg!!
 

Daassan

Mitglied
simples beispiel wenn du ne pup variable hast kann jeder draufzugreifen und reinschieben was er mag

wenn dein gesicht pub wäre könnte ich ohne probleme meine faust direkt in dein gesicht schieben
ohne setter kannst daran nichts ändern

wäre es privat und du hast nen setter gebaut kannst ads abfangen und vllt ne nette exception werfen
"NotFistibleException" ^^
 
G

Gast2

Gast
simples beispiel wenn du ne pup variable hast kann jeder draufzugreifen und reinschieben was er mag

wenn dein gesicht pub wäre könnte ich ohne probleme meine faust direkt in dein gesicht schieben
ohne setter kannst daran nichts ändern

wäre es privat und du hast nen setter gebaut kannst ads abfangen und vllt ne nette exception werfen
"NotFistibleException" ^^

made my day! :D

Btw. ne wirklich plastische Erklärung! :toll:
 
N

nillehammer

Gast
[OT]@Daassan: Glaube nicht, dass Deine Erklärung zum Verständnis beiträgt. Halte sie darum für didaktisch ungeeignet. Ich habe aber sehr gelacht. Darum gab's auch ein Danke :)autsch: <-- bei dem Smiley war gesicht wohl leider doch public :lol:)[/OT]
 

Daassan

Mitglied
:D
schön das ich ein lachen auf viele gesichter bringen konnte
aber immer genau diese szene is immer in meinem kopf wenn ich public vars sehe
mit der begründung das setter udn getter sinnlos sind und man auch gleich draufzugreifen kann ^^

naja das is halt ein hiebfester gegenbeweis ;D
 
S

Spacerat

Gast
Der Humor tut ja im Magen weh... :lol: Aber wenn da so'n Knilch ankommt, äussert sich so 'ne Exception nun mal nicht anders, als mit dem setzen von Defaultwerten (z.B. ein Lachkrampf). Und genau den Sinn haben Setter - man kann die Beeinflussung der Variablen kontrollieren, was man bei öffentlichen Variablen halt nicht kann. Das hört auch nicht beim Ändern der Variablen oder beim Werfen von Exceptions auf, sondern man kann auch noch Observer informieren, Events auslösen usw. Will gar nicht wissen in welcher Ecke ich liegen würde, wenn mein Gehirn nicht über diesen Lachkrampf informiert worden wäre, damit der "Krieg dich wieder ein"-Callback greift.
@nillehammer: Wer hat gesagt, dieses Beispiel sei didaktisch ungeeignet?
Wie auch immer... die einzigen Variablen, die public sein dürfen, sollten gleichzeitig auch final sein.
[EDIT]Ich kann in die Zukunft sehen... Als nächstes kommt dann wohl die Frage, was ich geraucht habe... ehrlich gesagt... nichts, ich bin so.[/EDIT]
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
I If / Else in Setter? Java Basics - Anfänger-Themen 8
T Getter/Setter - wie sieht ein Setter aus? Und wie nicht? Java Basics - Anfänger-Themen 34
M Methoden Zweidimensionaler Array mit Setter Methode ändern Java Basics - Anfänger-Themen 4
H Mit setter-Methode JLabel in einer andern Klasse ändern. Java Basics - Anfänger-Themen 40
W Getter/Setter Java Basics - Anfänger-Themen 4
C Setter-Methode mit final-Attribut Java Basics - Anfänger-Themen 9
KogoroMori21 Objektvariable anderer Klasse übernehmen, Getter/Setter Java Basics - Anfänger-Themen 11
T Verständnisfrage Objekt Getter Setter Java Basics - Anfänger-Themen 102
KogoroMori21 Getter und Setter Java Basics - Anfänger-Themen 5
S Klassen instanziieren und verwenden von Getter und Setter Java Basics - Anfänger-Themen 4
P Klasse hat keinen Zugriff auf getter/setter-Methoden eines Objektes Java Basics - Anfänger-Themen 9
M Gettter/Setter Methoden Klassenfelder kapselung und zugriff? Java Basics - Anfänger-Themen 1
V getter/setter Garage Java Basics - Anfänger-Themen 12
S getter, setter in abstrakter Klasse oder lieber Unterklassen Java Basics - Anfänger-Themen 4
topi Kapselung getter und setter Java Basics - Anfänger-Themen 5
D Setter/Getter für Instanzvariablen praktisch? Java Basics - Anfänger-Themen 19
S Getter/Setter - Variablenklasse ? Java Basics - Anfänger-Themen 5
S getter and setter Java Basics - Anfänger-Themen 12
L Getter und Setter Java Basics - Anfänger-Themen 2
JavaTalksToMe Kapselung Setter Frage Java Basics - Anfänger-Themen 15
M Generics getter und setter Methoden Java Basics - Anfänger-Themen 4
E Methoden Objekte in Methode aufrufen ohne getter und setter? Java Basics - Anfänger-Themen 1
kilopack15 Ist diese setter-Methode richtig? Java Basics - Anfänger-Themen 2
L Klassen - Getter & Setter Methoden Java Basics - Anfänger-Themen 2
D Erste Schritte Java - Setter und Getter Java Basics - Anfänger-Themen 1
T setter im Konstruktor einbauen? Java Basics - Anfänger-Themen 8
Z Getter/Setter NullPointer Exception Java Basics - Anfänger-Themen 6
K Klassen Setter/Getter Java Basics - Anfänger-Themen 3
F OOP Schleifen und Probleme mit Setter und Getter Java Basics - Anfänger-Themen 1
L Setter und Getter/Vererbung Java Basics - Anfänger-Themen 6
K Kapselung getter & setter Java Basics - Anfänger-Themen 11
F Setter Java Basics - Anfänger-Themen 4
gamebreiti Problem mit Setter in Superklasse Verkettung der Kostruktoren??? Java Basics - Anfänger-Themen 7
J Frage zu Setter u. Getter Java Basics - Anfänger-Themen 7
T Variablen Getter-Setter vs Public Variable? Java Basics - Anfänger-Themen 5
Y Konstruktor - Setter/Getter Java Basics - Anfänger-Themen 3
N Setter funktioniert nicht Java Basics - Anfänger-Themen 6
N Klassen fragen zur getter und setter methode Java Basics - Anfänger-Themen 11
D Ab wann getter und setter Java Basics - Anfänger-Themen 2
K getter & setter Java Basics - Anfänger-Themen 6
M Methoden Problem bei Setter. Java Basics - Anfänger-Themen 2
C getter/setter Problem anscheinend Java Basics - Anfänger-Themen 13
G Erste Schritte Getter und Setter Java Basics - Anfänger-Themen 12
B Getter,Setter - Konstruktor überflüssig? Java Basics - Anfänger-Themen 26
N Sprite Methode (Getter, Setter, Konstruktor) Java Basics - Anfänger-Themen 9
S getter/setter aufrufen Java Basics - Anfänger-Themen 9
B Java getter/setter funktioniert nicht! Java Basics - Anfänger-Themen 7
X OOP Getter/Setter überschreiben den Wert ihrer Variablen nicht Java Basics - Anfänger-Themen 4
S Ein Attribut/Instanz eines bestehendes Objektes mit SETTER Methode ändern Java Basics - Anfänger-Themen 3
T Erste Schritte Verständnisfrage: Getter und Setter Methoden Java Basics - Anfänger-Themen 3
S Setter Methode von Boolean Java Basics - Anfänger-Themen 11
V public Variablen vs Getter + Setter Java Basics - Anfänger-Themen 4
F Getter und Setter Java Basics - Anfänger-Themen 4
lulas[]args getter/setter umstellung Java Basics - Anfänger-Themen 6
propra Gegenteil von Setter-Methoden Java Basics - Anfänger-Themen 30
T Setter Methode Wertebereich eingrenzen Java Basics - Anfänger-Themen 5
F Setter-Methode bei double-Array Java Basics - Anfänger-Themen 6
A Setter verschachteln? Java Basics - Anfänger-Themen 4
D Kapselung override Setter Java Basics - Anfänger-Themen 5
B Klassen Getter-Setter vor neuem Klassenaufruf - wie? Java Basics - Anfänger-Themen 20
T Variablen fast identische Setter Java Basics - Anfänger-Themen 14
H OOP Setter im Konstruktor um code nicht zu wiederholen? Java Basics - Anfänger-Themen 2
N OOP Getter, Setter und andere Probleme Java Basics - Anfänger-Themen 8
A OOP Getter und Setter Java Basics - Anfänger-Themen 18
L Unterschied Konstruktor / Getter Setter Java Basics - Anfänger-Themen 13
L Setter und Getter für Arrays? Java Basics - Anfänger-Themen 4
N boolean bei Setter und getter methoden Java Basics - Anfänger-Themen 21
N immer Setter-Methoden verwenden? Java Basics - Anfänger-Themen 54
J Getter und Setter auch intern benutzen - guter Stil? Java Basics - Anfänger-Themen 31
U Problem mit setter Java Basics - Anfänger-Themen 17
Houly Setter/Getter MEthoden testen Java Basics - Anfänger-Themen 4
P OOP Getter&Setter Methoden funktionieren nicht Java Basics - Anfänger-Themen 7
S Setter bei Variablen Java Basics - Anfänger-Themen 6
R Enum und dann setter Setzen? Java Basics - Anfänger-Themen 44
H Setter-und-Getter-Konvention Java Basics - Anfänger-Themen 8
V Reflection API - getter und setter Java Basics - Anfänger-Themen 7
-horn- EINE setter/getter klasse aus mehreren klassen befüllen Java Basics - Anfänger-Themen 13
C Getter/Setter Java Basics - Anfänger-Themen 61
H Frage zu getter und setter Java Basics - Anfänger-Themen 5
G [Hibernate] Could not find a setter for property Java Basics - Anfänger-Themen 2
S Unbenutzte/überflüssige Getter/Setter herausfinden? Java Basics - Anfänger-Themen 2
M getter/setter bei JTextField ? Java Basics - Anfänger-Themen 21
G warum Setter/Getter Java Basics - Anfänger-Themen 25
S In einer Liste auf getter und setter zugreifen Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben