OOP Getter und Setter

A

Atlan

Gast
hi
ich habe eine Arbeit in Informatik geschrieben und für folgende erklärung von gettern und settern nur 1,5/4 Punkten erhalten.
kann mir einer meine Fehler aufzeigen? Der Lehrer schreibt leider keine Kommentare an die Aufgaben )=

Die Aufgabe war: Geben sie an was Getter und Setter (alternativ als Get-Funktionen und Set-Funktionen bezeichnet) und wozu diese benötigt bzw. verwendet werden.


Antwort:
Get- und Set-Funktionen werden verwendet, um Variablen in eine private Klasse hinein und heraus
zu transportieren zu können. Auf Variablen in Klassen mit der Vorgabe privat kann man nicht ohne
weiteres zugreifen. Die Variablen müssen erst mit einer get Methode abgerufewn werden. So eine
Methode hat normalerweise nur den Inhalt „return variable;“. Durch das Aufrufen der Get Methode
vom Außen erhält die aufrufende klasse nun die Variable. Mit einer set-methode ist das fast genau so
nur, dass die Methode Parameter hat, die angeben sollen, wie der neue wert der zu
überschreibenden Variable lauten soll.

In der Standart Set-Methode steht nur die Zeile: „variable = parameter;“ , wobei die variable die zu
überschreibende variable ist. Diese Methoden haben Namen wie getVariable oder setVariable.
 

Andi_CH

Top Contributor
Hm "Get- und Set-Funktionen werden verwendet, um Variablen in eine private Klasse hinein und heraus
zu transportieren"

Es werden Werte "transportiert" vielleicht schreibst du "...um private Variablen zu setzen bzw. zu lesen" (ob die Klasse privat ist oder nicht spielt keine Rolle)

Es ist überall so - nicht die Variablen werden bewegt sonder Werte gelesen und geschrieben, aber der Grundansatz ist nicht schlecht.
 
Zuletzt bearbeitet:

Volvagia

Top Contributor
Es gibt keine privaten Klassen (nur public oder package private alias default, außer inneren Klassen aber da verhält es sich ja allgemein anders), und auf private Variablen "nicht ohne weiteres zugreifen" klingt komisch. Man kann aus der gesamten Klasse darauf zugreifen.
Mehr fällt mir nicht auf.
 
M

maki

Gast
Wo steht denn das Getter & Setter public sein sollten?
private oder package protected Getter und Setter nutzen nicht viel.
Dazu fehlt imho die Referenz auf die JavaBeans Spek, daher kommt das ja mit den Gettern und Settern.

Schwierig zu sagen warum dein Lehrer dir die Punkte gegeben hat, kann ja nicht wissen was er hören wollte bzw. was ihr so durchgenommen hattet.
 
B

Beni

Gast
Ein Get/Set wird verwendet um eine Variable einer Klasse zu lesen/schreiben. Die Klasse darf durchaus public sein. Ob die Variable ein (privates) Feld ist, oder eine Variable einer anderen Klasse, oder nur im Getter berechnet wird, ist dabei egal. Die Get/Set Methoden sind eine Abstraktion - eine immer gleiche Darstellung einer Variable (wenn sich was aendert, musst du weniger umschreiben...). Normalerweise wird aber schon von einem privatem Feld ausgegangen.

Der Setter kann auch gleich noch testen, ob der neue Wert legal ist, und allenfalls eine Exception werfen falls nicht.
 

Andi_CH

Top Contributor
Hm - also private getter und setter sind ja schon eher seltsam - da kann man ja genau so gut direkt auf die Member zugreifen (Wenn die getter und setter wirklich nicht mehr machen als die Werte zu getten und setten ;-) )

Man könnte schon noch viel mehr schreiben:

setter können
- Wertbereiche überwachen
- Werte vorverarbeiten
- ...

getter können
- Werte aus vorhandenen Varaiblen berechnen
- komplexere Abfragen kapseln
- ...
 

Volvagia

Top Contributor
Java:
public class Test4 {

	private class Foo {
	}

	Foo fff = null;

	public void gaga() {
		fff = new Foo();
	}
}

Dadurch kann die Instanz zwar nur in der eigenen Klasse erzeugt werden, der Klassenzugriff, wenn sie die Referenz bekommt ist aber immer noch da.
Aber ich denke, das ist wieder Haarspalterei. Hab oft andere Ansichten und Ausdrücke. :)


Warum fragst du nicht einfach deinen Lehrer?
 
A

Atlan

Gast
@ Volvagia
wir haben ihn erst nach den osterferien(bremen) wieder
und ich wollte nicht 3 wochen auf eine antwort warten XDD
 

Volvagia

Top Contributor
Denk am Besten garnicht mehr daran, das verdirbt dir sonst die Ferien. Wir können dir eh nur sagen, was unserer Meinung nach nicht passt, nicht was er dachte.

Mit dem Setter (eigendlich müsste es Adder heißen ^^) setze ich z. B. nicht nur eine Variablenreferenz, sondern rufe eine Methode einer Unterklasse auf. Das verkürzt den Code (sonst müsste es ja #getWorkgroupList().add(Workgroup.getWorkgroup(name)) heißen, wenn man den null-Check ignoriert), und ich kann Dinge, die ich ansonst vergessen könnte, oder den "Ablaufteil" des Sources stören würde wie hier das synchronisieren machen.

Java:
public void addWorkgroup(String name)
{
	Workgroup workgroup = Workgroup.getWorkgroup(name);
	if(workgroup != null)
	{
		synchronized (workgroupList)
		{
			workgroupList.add(workgroup);
		}
	}
}
 

Andi_CH

Top Contributor
Dadurch kann die Instanz zwar nur in der eigenen Klasse erzeugt werden, der Klassenzugriff, wenn sie die Referenz bekommt ist aber immer noch da.

Ich wollte damit eigentlich nur sagen dass es private Klassen gibt ;-)
Über den Nutzen eine Referenz auf eine Private Klasse zu haben müssen wir an dieser Stelle nicht nachdenken. Ich kann ja mit dem Objekt hinter der Referenz nicht viel anstellen, da ich die Klasse gar nicht kenne - aber das sprengt den Rahmen dieses Threads ...
 

Marco13

Top Contributor
Das ist so eine Art von Frage, bei der man die Vorteile von technisch-naturwissenschaftlichen Fächern (speziell: objektive Beurteilbarkeit der Antworten) ad absurdum führen kann, aber als Rechtfertigung (ausnahmsweise, für den Lehrer) : Man könnte kritisieren, dass der Sinn von gettern und settern nicht erklärt wurde. Dass (oder ob) da nun eine oder zwei Zeilen drin stehen und wie die rein syntaktisch aussehen ist "egal" (oder nicht so wichtig). Stichworte wie "Kapselung" oder "Veränderbarkeit einschränken" hätten vielleicht noch ein paar Pünktchen gebracht....
 

Dekker

Bekanntes Mitglied
Das ist so eine Art von Frage, bei der man die Vorteile von technisch-naturwissenschaftlichen Fächern (speziell: objektive Beurteilbarkeit der Antworten) ad absurdum führen kann, aber als Rechtfertigung (ausnahmsweise, für den Lehrer) : Man könnte kritisieren, dass der Sinn von gettern und settern nicht erklärt wurde. Dass (oder ob) da nun eine oder zwei Zeilen drin stehen und wie die rein syntaktisch aussehen ist "egal" (oder nicht so wichtig). Stichworte wie "Kapselung" oder "Veränderbarkeit einschränken" hätten vielleicht noch ein paar Pünktchen gebracht....

Genau das dürfte der Punkt seien. Wir wissen hier alle nicht was ihr alles in eurer Vorlesung / Klasse so besoprochen habt, aber ich denke es geht hier auch um die Konzepte die du mit den Getter-/ und Setter-Methoden umsetzen kannst.
 
M

maki

Gast
Getter bringen noch keine Kapselung (man denke nur an java.util.Date oder Collections), sorgen aber für "Information Hiding".
Bei JavaBeans darf man gar keine Immutables bauen, widerspricht der Spek (Setter müssen vorhanden sein).

Die Frage ist aber immer noch was der Lehrer hören wollte, egal wie richtig oder falsch es ist...

Volvagia, addWorkgroup ist kein Setter ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Getter/Setter - wie sieht ein Setter aus? Und wie nicht? Java Basics - Anfänger-Themen 34
W Getter/Setter Java Basics - Anfänger-Themen 4
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
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
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
L Klassen - Getter & Setter Methoden Java Basics - Anfänger-Themen 2
D Erste Schritte Java - Setter und Getter Java Basics - Anfänger-Themen 1
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
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 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
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
T Erste Schritte Verständnisfrage: Getter und Setter Methoden Java Basics - Anfänger-Themen 3
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
B Klassen Getter-Setter vor neuem Klassenaufruf - wie? Java Basics - Anfänger-Themen 20
N OOP Getter, Setter und andere Probleme Java Basics - Anfänger-Themen 8
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
J Getter und Setter auch intern benutzen - guter Stil? Java Basics - Anfänger-Themen 31
Houly Setter/Getter MEthoden testen Java Basics - Anfänger-Themen 4
P OOP Getter&Setter Methoden funktionieren nicht Java Basics - Anfänger-Themen 7
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
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
Say Class scope und Instance scope und Getter nur selbstgeschrieben Methoden Java Basics - Anfänger-Themen 11
W Unterschiede bei Zugriff auf Objekt und Klassenvariablen über einen Getter? Java Basics - Anfänger-Themen 2
O Instanzattribut per Getter Methode zuweisbar, warum? Java Basics - Anfänger-Themen 8
P Klassenübergreifende Ausgabe mittels "getter" nicht möglich Java Basics - Anfänger-Themen 21
J Array über Getter erlangen Java Basics - Anfänger-Themen 34
M Getter einer PriorityQueue Java Basics - Anfänger-Themen 1
KopaCoda Getter mehrfach aufrufen -> ist das guter code? Java Basics - Anfänger-Themen 3
V Getter Methode Java Basics - Anfänger-Themen 38
T Extrahiertes Objekt durch Getter bekommen Java Basics - Anfänger-Themen 2
D Kapselung final Variablen mit Getter? Java Basics - Anfänger-Themen 2
A getter Java Basics - Anfänger-Themen 3
T Getter für Array Java Basics - Anfänger-Themen 4
J-Gallus Ein Getter bekommt eine anderen Type als er Return soll Java Basics - Anfänger-Themen 9
K Public Attribute oder getter - funktioniert leider beides hier nicht Java Basics - Anfänger-Themen 5
P getter Java Basics - Anfänger-Themen 1
M Getter Problematik mit ItemListener Java Basics - Anfänger-Themen 17
S Array und Getter-Methode Java Basics - Anfänger-Themen 2
Avarion Getter von Super-Klasse funktioniert nicht Java Basics - Anfänger-Themen 10
J Variable per Getter holen - wie ? Java Basics - Anfänger-Themen 2
D Getter Mehtode Unsicher Java Basics - Anfänger-Themen 6
M Problem mit getter, liefert nur alte Werte Java Basics - Anfänger-Themen 6
El_Lobo Methoden Zu viele Getter- und Settermethoden - geht das einfacher? Java Basics - Anfänger-Themen 3
G Generics kein Zugriff auf getter eines Objekts Java Basics - Anfänger-Themen 4
M OOP Aufruf vieler Getter Methoden abkürzen? Java Basics - Anfänger-Themen 7
MU5T4NG Getter und Setten bei GUI-Erstellung Java Basics - Anfänger-Themen 13
B Variablen keine Arrayübergabe für getter im Interface Java Basics - Anfänger-Themen 8
J int Wert mit getter holen und in String parsen Java Basics - Anfänger-Themen 5
O Universeller GETTER Java Basics - Anfänger-Themen 5
J Die Getter Methode Java Basics - Anfänger-Themen 6
E [Erledigt] Schöner Code zur Reduktion von unzähligen Getter-Methoden Java Basics - Anfänger-Themen 2
F 2 dimensionales Array getter Methode Java Basics - Anfänger-Themen 3
K Getter Java Basics - Anfänger-Themen 6
S JTextField in anderer Classe mit getter Methode auslesen. Java Basics - Anfänger-Themen 2
M if oder verschiedene getter Java Basics - Anfänger-Themen 31
I If / Else in Setter? Java Basics - Anfänger-Themen 8
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
C Setter-Methode mit final-Attribut Java Basics - Anfänger-Themen 9
M Gettter/Setter Methoden Klassenfelder kapselung und zugriff? Java Basics - Anfänger-Themen 1
JavaTalksToMe Kapselung Setter Frage Java Basics - Anfänger-Themen 15
kilopack15 Ist diese setter-Methode richtig? Java Basics - Anfänger-Themen 2
T setter im Konstruktor einbauen? Java Basics - Anfänger-Themen 8
F Setter Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben