getter/setter umstellung

lulas[]args

Mitglied
Heyho!
Ich habe ein Programm geschrieben und da ich mir anfangs noch unsicher war, habe ich es erst mit public Variablen gemacht. Jetzt will ich diese im Nachhinein private setzen und mit gettern/settern ausstatten. So weit eig kein Problem die IDE zeigt ja an wo überall die Variablenaufrufart durch get/set ersetzt werden muss.

Jedoch habe ich 2 Probleme:

1. Ich habe eine Superklasse, die momentan alle Instanzvariablen enthält und dazu 2 Subklassen, welche momentan keine eigenen Variablen haben.

Frage: Muss ich die Variablen jetzt komplett in die Subklassen kopieren/überschreiben oder aus der Superklasse löschen? Wenn ich sie aus der Superklasse lösche finden meine Methoden sie dort auch nicht mehr.

Und muss ich die Variablen dann in der Superklasse, wie in der Klasse in der ich die main habe über zb.
hase.getFarbe() aufrufen?

2. Ich hatte in meinen Programm als die Variablen public waren in der main Methode (andere Klasse als die vorherigen) eine if Prüfung die die Variablen aus der Superklasse aufgerufen hat, anstelle von meiner folgenden get methode hat es mit spieler1.pos alles geklappt. Jetzt bekomme ich hier die Fehlermeldung: unexpected type, required variable, found value.???:L

Java:
 if (spieler1.springen() == true){ // 
                        if (spieler2.getPos() >= spieler1.getPos()){        // Der Spieler wird genau vor seinen Gegenspieler gesetzt, falls                         
                            spieler1.getPos() = ++spieler2.getPos();        // dieser sich weiter vorn auf dem Spielfeld befindet. 
                            --spieler2.getPos();                            // Beide Spieler auf Position des Gegenspielers + 1
                        }                                                   // Gegenspielerposition - 1
                    }

Danke schonmal!
Ps: Wenn ich mich unklar ausdrücke bitte einfach nachfragen ;)
 

HimBromBeere

Top Contributor
Du musst du Variablen nun in allen Subklassen auch über getter und stter ansprechen... oder du machst die Variablen protected, damit wären sie dann in der Oberklasse sowie allen ableitenden Klassen verfügbar. Du kannst sie aber in der Superklasse lassen und musst sich auch nicht in die Subklassen kopieren.
 

HimBromBeere

Top Contributor
Code:
--spieler2.getPos();
Ich denke, hier karkt es. Um die Position zu dekrementieren, müsstest du den setter verwenden (abgesehen davon, was bitte ist pos--? Wird da die x- oder die y-Koordinate dekrementiert?)

EDIT: achso, gleiches gilt natürlich für
Code:
++spieler2.getPos();
 

lulas[]args

Mitglied
Aber ich spreche sie dann einfach über den Namen an, den ich dem Objekt der Subklasse beim Erzeugen gegeben habe : also zb spieler1 = new Mensch(); spieler1.getPos()

warum kann ich diesen Part nich ausführen?

spieler1.getPos() = ++spieler2.getPos();
--spieler2.getPos();

ohne getter konnte ich so die position von 1 und 2 gleich position von 2 +1 setzen und danach die von 2 wieder erniedrigen.

muss da irgendwie sie set Methode noch mit rein um den selben Effekt erzielen zu können?

Danke!

PS: Pos ist die Position des Spielers zwischen 1 und 40
 

HimBromBeere

Top Contributor
Weil getPos nur eine Referenz auf deinen eigentlichen int ist und nicht der int selbst... getPos sagt sozusagen nur, das irgendwo im Speicher eine Variable rumliegt, die pos heißt... mehr nicht.

EDIT: Du musst also wohl oder übel sowas verwenden:
Java:
spieler.setPos(spieler.getPos() + 1)
bzw.
[JAVA=2]spieler.setPos(spieler.getPos() - 1)[/code]

EDIT: Alternativ kannst du natürlich auch einfach statt eines setters zwei Methoden schreiben: moveLeft und miveRight, die dir die Position dann jeweils berechnen...
 
Zuletzt bearbeitet:

André Uhres

Top Contributor
Du kannst in einer Subklasse mit getter/setter auf die Variablen der Superklasse zugreifen. Allerdings, wenn die Variablen "protected" statt "private" wären, könntest Du auch direkt darauf zugreifen. Die Superklasse kann auf seine eigenen Instanzvariable direkt zugreifen oder über seine eigenen getter/setter (obwohl letzteres manchmal empfohlen wird).

Der Rückgabewert des Ausdrucks ++a ist a+1. Zusätzlich wird die Variable a inkrementiert und erhält den Wert a+1. Wenn Du ++objekt.getA() schreibst, kann keine Variable inkrementiert werden, weil keine da ist, daher die Fehlermeldung des Compilers. Du könntest a=objekt.getA() schreiben und danach ++a machen. Oder Du schreibst einfach objekt.getA()+1, wenn Du keine extra Variable brauchst. Ähnlich ist es bei objekt.getA() = 1. Was da links vom = steht ist keine Variable und kann deshalb keinen Wert zugewiesen bekommen (dafür ist ja der setter da).

Gruß,
André
 

lulas[]args

Mitglied
Ich denk ich habs, hab den rest noch nich geändert aber an der Stelle bekomm ich schon mal keinen Fehler mehr!
Java:
if (spieler2.getPos() >= spieler1.getPos()){                               
                 spieler2.setPos(spieler2.getPos() + 1);
                 spieler1.setPos(spieler2.getPos());                                       
                 spieler2.setPos(spieler2.getPos() - 1);                       
           }
 
Ä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
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
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
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