Getter Mehtode Unsicher

DuffCola

Aktives Mitglied
Hallo,
ich lese gerade das Buch Java ist auch eine Insel.
Dabei wird gesagt, dass man nur Getter und Setter Methode benutzen soll.
Ich verstehe den Sinn usw. aber bei den Getter Methoden verstehe ich eins nicht, und zwar kann man doch bei folgendem Beispiel:
Java:
public class Player
{
  private String name = "";
  private String item = "";

  public String getName()
  {
    return name;
  }

  public void setName( String name )
  {
    if ( name != null && !name.trim().isEmpty() )
      this.name = name;
  }

  public String getItem()
  {
    return item;
  }

  public void setItem( String item )
  {
    if ( item != null && !item.trim().isEmpty() )
      this.item = item;
  }
}
Die setItem Mehtode umgehen, und mithilfe der Get Mehtode und dann der Methoden der String klasse das Item ändern, ohne das setItem benutzt wird.
In C++ konnte man da mit const was machen, aber hier bei Java?
(Zunächst wäre das ja nicht schlimm, aber wenn zum Beispiel in der setItem Mehtode ein Counter oder so mitzählt wie oft ein Item geändert wird entsteht bei dem Beschrieben Fall ja dann ein Logik Fehler/Sicherheits Feherl)
 
Zuletzt bearbeitet von einem Moderator:

Bqg_stylo

Mitglied
Tut mir leider aber kannst du bitte deinen Satz vernünftig formulieren
Die setItem Mehtode umgehen, und mithilfe der Get Mehtode und dann der Methoden der String klasse das Item ändern, ohne das setItem benutzt wird.

Also da komm ich beim besten Willen nicht dahinter wie du vorgehen möchtest?

sowas hier funktioniert auf jeden fall nicht:
Java:
Player play =new Player();
play.setItem("Deutschland");
play.getItem()="bLA"; //Compiler Fehler: "The left-hand side of an assignment must be a variable"
 

newbie2009

Bekanntes Mitglied
So wie ich dich verstanden habe, hast du ein Problem damit zu verstehen weshalb du die Setter-Methode brauchst. Weil du ja theoretisch mit dem Getter auf die Variable zugreifen könntest. Mit deinen Methoden kannst du allerdings deinen Variablen keinen neuen Wert zuweisen ohne die Setter zu benutzen.

Wenn doch? Dann zeig Uns doch wie du es anstellen würdest, dann könnten wir deinen Gedankengang vllt. besser nachvollziehen.


Die Benutzung von Getter- und Settermethoden macht vor Allem Sinn wenn du mit private Variablen arbeitest. Sonst erstell doch einfach mal noch eine Klasse und erstelle dort eine Instanz deiner Playerklasse und versuche dann den Namen zu ändern.


Lg
 

eRaaaa

Top Contributor
Mit deinen Methoden kannst du allerdings deinen Variablen keinen neuen Wert zuweisen ohne die Setter zu benutzen.

Das ist hier aber nur so, weil die String-Klasse immutable ist. Vlt. hat er sich einfach nur ein doofes Beispiel ausgesucht. Angenommen String wäre nicht immutable und hätte auch wieder ein set-Methoden, könnte ich item schon über die get-Methoden verändern. Vlt. ist genau das gemeint?! Wenn man dies verhindern möchte/muss, muss man eben seine eigene Klasse auch immutable machen und zusehen, dass man keine Referenzen zu Objekten herausgibt die selbst nicht auch immutable sind.
A Strategy for Defining Immutable Objects (The Java™ Tutorials > Essential Classes > Concurrency)
 

DuffCola

Aktives Mitglied
Sorry, habe den Satzfehler irgendwie nicht gesehen.
Ich verstehe euch schon, aber ich meine damit, dass ich ja mit den Methoden der Referenz, die ich mit der Get Methode bekomme das private Attribut bearbeiten kann.
Zum beispiel beim String einen bestimmten bereich löschen oder so...
Get Methoden sind doch eigentlich nur zum lesen und nicht zum schreiben da oder?
 

X5-599

Top Contributor
Du kannst die Referenzen bearbeiten, ja. Bei Klassen die mutable also veränderbar sind. Bei String ist das aber nicht der Fall. Der ist nämlich immutable.

In jedem Fall kannst du die bekommene Referenz nicht durch eine andere ersetzen.
 

ARadauer

Top Contributor
Sicher/Unsicher wir reden hier ja nicht über Security. Private usw sollen ja nur helfen damit man keinen blödsinn macht. Möglichkeiten das zu umgehen gibt es immer wieder...

Kapselung hat weniger mit Security zu tun...
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Getter/Setter - wie sieht ein Setter aus? Und wie nicht? Java Basics - Anfänger-Themen 34
Say Class scope und Instance scope und Getter nur selbstgeschrieben Methoden Java Basics - Anfänger-Themen 11
W Getter/Setter Java Basics - Anfänger-Themen 4
W Unterschiede bei Zugriff auf Objekt und Klassenvariablen über einen Getter? Java Basics - Anfänger-Themen 2
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
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
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
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
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
T Extrahiertes Objekt durch Getter bekommen Java Basics - Anfänger-Themen 2
M Generics getter und setter Methoden Java Basics - Anfänger-Themen 4
D Kapselung final Variablen mit Getter? Java Basics - Anfänger-Themen 2
A getter Java Basics - Anfänger-Themen 3
E Methoden Objekte in Methode aufrufen ohne getter und setter? Java Basics - Anfänger-Themen 1
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
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
P getter Java Basics - Anfänger-Themen 1
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
M Getter Problematik mit ItemListener Java Basics - Anfänger-Themen 17
K Kapselung getter & setter Java Basics - Anfänger-Themen 11
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 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
J Variable per Getter holen - wie ? 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
M Problem mit getter, liefert nur alte Werte Java Basics - Anfänger-Themen 6
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
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
B Klassen Getter-Setter vor neuem Klassenaufruf - wie? Java Basics - Anfänger-Themen 20
M OOP Aufruf vieler Getter Methoden abkürzen? Java Basics - Anfänger-Themen 7
N OOP Getter, Setter und andere Probleme Java Basics - Anfänger-Themen 8
A OOP Getter und Setter Java Basics - Anfänger-Themen 18
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
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 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
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
E [Erledigt] Schöner Code zur Reduktion von unzähligen Getter-Methoden Java Basics - Anfänger-Themen 2
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
F 2 dimensionales Array getter Methode Java Basics - Anfänger-Themen 3
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
K Getter Java Basics - Anfänger-Themen 6
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
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
Z Mehtode bei Start des Programms ausführen (Klassen übergreifend) Java Basics - Anfänger-Themen 12
G wait()-Mehtode Java Basics - Anfänger-Themen 13
B Methode als variable an andere Mehtode übergeben Java Basics - Anfänger-Themen 17
P Anzahl von Argu einer Mehtode Java Basics - Anfänger-Themen 7
D Etwas unsicher wie es weitergehen soll Java Basics - Anfänger-Themen 2
S Klassen Dekompilen eines Programms unsicher? Java Basics - Anfänger-Themen 6
A Unsicher bei Aufgabenstellung Java Basics - Anfänger-Themen 9
J JAVA zu unsicher für MYSQL? Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben