ERLEDIGT
NEIN
NEIN
ANTWORTEN
1
1
ZUGRIFFE
775
775
EMPFEHLEN
-
Moin!
Was bewirkt der im Titel angegebene Befehl und wann und warum benutzt man ihn?
<- java
MfG
Sny
-
04.04.05 09:21 #2
- Registriert seit
- Mar 2001
- Ort
- München
- Beiträge
- 4.785
Lokale Variablen überschreiben Membervariablen
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Variante A (falsch); class User { private String name; public User(String name) { name = name; } } Variante B (richtig); class User { private String name; public User(String name) { this.name = name; } }
Da lokale Variablen primär behandelt werden ist in der Variante A das Problem
das die Membervariable name der Klasse User nie gesetzt wird.
Das einzige was passiert ist die lokale Variable name bekommt den Wert von sich
selber zugewiesen. Was natürlich unsinn ist.
Variante B macht demnach klar das die Variable name des aktuellen Objectes (this)
den Wert der lokalen Variable name zugewiesen bekommt, was im Sinne des erfinders ist.
this zeigt immer auf das aktuelle Object:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
class User { private String name; public User(String name) { this.name = name; } public String getName() { return name; } } User userA = new User("Heinrich"); User userB = new User("Detlef);
In der Methode getName() gibt es keine lokale variable name, weshalb hier das this nicht benötigt wird. Sprich getName() gibt tatsächlich den Wert der Membervariable name zurück.
Sprich im Constructor steht this.name hier erstmal für userA.name und später für userB.name
Weshalb userA.getName().equals("Heinrich")==true und userB.getName().equals("Detlef");Erst wenn der letzte Programmierer eingesperrt...
...und die letzte Idee patentiert ist, werdet ihr merken, dass Anwälte nicht programmieren können.
-------------------
chris: hey Tom hast du eigentlich ne Freundin
jdar: ich bin tutorials.de Mod!
Ähnliche Themen
-
Richtige Syntax bei Operatorüberladung, wann sind "friend", "const", "&" nötig?
Von mrs_schokokeks im Forum C/C++Antworten: 4Letzter Beitrag: 25.08.10, 19:13 -
Eingabe in der timeline: "time*100" - bei Effekt "turbulentes Versetzen"-"Evolution"
Von MTMonline im Forum Videoschnitt, Videotechnik & -produktionAntworten: 2Letzter Beitrag: 25.04.08, 09:49 -
Finder methods + JBoss + Was expecting one of: "CONCAT" "SUBSTRING" ... "(" ... <STRI
Von cengizhdde im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 6Letzter Beitrag: 27.05.05, 15:29 -
Datei-Eigenschaften: "erstellt:","Geändert am", "Letzter Zugriff:"
Von KILLSMAKER im Forum C/C++Antworten: 2Letzter Beitrag: 19.05.05, 19:51 -
position:relative bewirkt ein "Loch"
Von Pflaumi im Forum CSSAntworten: 3Letzter Beitrag: 05.11.03, 14:00





Zitieren
Login





