was bedeutet "this"

Status
Nicht offen für weitere Antworten.

batou

Mitglied
hallo,

also ein frage finde bis jetzt keine richtige antwort. würde gerne wissen was this.irgendetwas macht wofür ist dieser befehl da wo kann man nachlesen bzw. könnt ihr mir helfen was das genau macht?

gruß
batou
 

batou

Mitglied
hmm, ok ja gut, das habe ich mir fast gedacht. aber kann ich das auch anders formulieren? oder anders gefragt, warum macht man das genau!
 

ARadauer

Top Contributor
dient der lesbarkeit zb:

Code:
public class Hund {
	
	String name;	

	public Hund(String name) {
		name = name; //sehr schlecht, das macht nämlich nix, Paramter = Parameter
		this.name = name; //besser
		this.scheißInDenWald(); //man weiß genau was passiert
		scheißInDenWald(); //geht auch, aber nicht so übersichtlich
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	public void scheißInDenWald(){
		System.out.println(name+" scheißt in den Wald!");
	}
}

oder wenn sich das objekt selber irgendwo mitgibt
Code:
	public void addMeToHundeHuete(HundeHeute huete){
		hueute.add(this);
	}

usw....


ps: huete schaut gscheid blöd aus, sind wir froh das wir umlaute haben ;-)
 

L-ectron-X

Gesperrter Benutzer
Manchmal übergibt man eine Referenz auf dieses Objekt an eine andere Klasse, damit diese damit arbeiten kann. Oder man möchte in einer Methode erreichen, dass nicht eine namensgleiche lokaleVariable verwendet wird, sondern die Instanzvariable. Manchmal möchte man das Programm auch einfach besser lesbar machen. Mit this macht man hier deutlich, dass ein Element aus dieser Klasse gemeint ist, also die Klasse, in der man sich gerade befindet.
 
E

exi

Gast
batou hat gesagt.:
hmm, ok ja gut, das habe ich mir fast gedacht. aber kann ich das auch anders formulieren? oder anders gefragt, warum macht man das genau!


Hallo,

'this' ist der Verweis eines Objektes auf sich selbst.
Meisens braucht man derlei nicht, denn bei unserem Handwerk achten wir schon selbst darauf keine doppelten Bezeichner zu verwenden; achten wir schon selbst darauf, alles was vererbt werden kann hinzunehmen und diesen Größen ihren Namen zu belassen.
Manchmal führt aber kein weg daan vorbei. Manchmal erben wir Methoden und müssen sie Methoden überschreiben, oder erben Komponenten und müssen sie unseren Wüschen anpassen. Und dann kann der Interpreter verwirrt werden. Dann weiß der Interpreter nicht, ob wie die Methode/Komponente der Ursprungsklasse meinen, oder unsere Neuformulierung der beerbten Klasse.
Und manchmal passiert es auch, daß Progammierer aus reiner Faulheit übergebene Werte so benennen wie die Größen in die sie geschrieben werden sollen. Auch dann ist es praktisch (und notwendig) eine klare Unterscheidung zu treffen. Mit 'this' mitzuteilen was dem Objekt gehört und was nicht.

tschüs
exi
 

ARadauer

Top Contributor
daß Progammierer aus reiner Faulheit übergebene Werte so benennen wie die Größen in die sie geschrieben werden sollen

darüber könnte man streiten. Ich mach das immer so und zwar nicht aus faulheit. Wenn es sich konkret um die selbe Variable handelt, dann fang ich mir nicht an vorn ein a oder sonst was dazu zu schreiben. ich weiß diesen parameter eh sofort meiner variable zu.
 
E

exi

Gast
Hallo ARadauer,

ARadauer hat gesagt.:
daß Progammierer aus reiner Faulheit übergebene Werte so benennen wie die Größen in die sie geschrieben werden sollen

darüber könnte man streiten. Ich mach das immer so und zwar nicht aus faulheit. Wenn es sich konkret um die selbe Variable handelt, dann fang ich mir nicht an vorn ein a oder sonst was dazu zu schreiben. ich weiß diesen parameter eh sofort meiner variable zu.

... dein Verzicht auf Präfixe wie 'str', 'obj' ist also keine Faulheit, sondern nur Bequemlichkeit? :))) Damit zwingst du dich allerdings selbst dazu bei den Zuweisungen (wie oben im Code) ein 'this' zu führen.
Nun, beruflich muß ich mich an die Werksvorgaben halten und etliche Firmen fordern das konsequente führen von Präfixen.
Privat nutze ich hier gerne die Groß- und Kleinschreibung.
Code:
    public void setName(String name) {
      Name = name;
   }
wobei ich Übergabewerte konsequent klein schreibe und in meinen Variablen mindestens einen Buchstaben groß schreibe. Das ist nur eine andere Strategie um eine klare Unterscheidung zu treffen.

Die Hinterfragung von 'batou' hat ja schon seine Berechtigung. In konsequent strukturierten Sprachen braucht man überhaupt keine Referenz einer Klasse auf sich selbst. Wenn man überhaupt beerbt, dann genügt eine Referenz auf die Mutterklasse mit super.machWas(...) um eigene Daten von denen der Mutterklasse zu unterscheiden. Die Klasse weiß doch selbst, daß sie gerade ausgeführt wird... da muß man es ihr nicht noch extra sagen.

tschüs
exi
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
onlyxlia Was bedeutet das @Override? Java Basics - Anfänger-Themen 1
W Streams in Java und was bedeutet meine Konsolen-Ausgabe? Java Basics - Anfänger-Themen 4
N Was bedeutet dieser Fehler Java Basics - Anfänger-Themen 2
S Was bedeutet ungleich (in diesem Zusammenhang)? Java Basics - Anfänger-Themen 2
S Was bedeutet das Zeichen := Java Basics - Anfänger-Themen 9
H Was bedeutet das: [I@7d4991ad? Java Basics - Anfänger-Themen 20
P Was bedeutet dieser Fehler? Java Basics - Anfänger-Themen 31
MiMa Was bedeutet unchecked or unsafe operations? Java Basics - Anfänger-Themen 6
ZH1896ZH OOP Verstehe nicht was der Hinweis bedeutet, bitte um Hilfe! Java Basics - Anfänger-Themen 2
O Was bedeutet das hier 999_983? Java Basics - Anfänger-Themen 2
D Was bedeutet diese Schreibweise? Java Basics - Anfänger-Themen 9
W Was bedeutet im Struktogramm „zufall“ aufrufen (keine Parameterübergabe)? Java Basics - Anfänger-Themen 8
S Erste Schritte Was bedeutet dieser Code? Java Basics - Anfänger-Themen 2
D Erste Schritte Was bedeutet dieser Code? Java Basics - Anfänger-Themen 23
R Was bedeutet -1 Java Basics - Anfänger-Themen 2
V OOP Was bedeutet das "aBruch" Java Basics - Anfänger-Themen 6
U Was bedeutet $@ in der Linux Kommandozeile Java Basics - Anfänger-Themen 3
dave253 Was bedeutet (String args[])? Java Basics - Anfänger-Themen 6
D was bedeutet this. bei Konstruktoren? Java Basics - Anfänger-Themen 4
N Was bedeutet "Implementierung vor dem Client verbergen" bei Design Patterns? Java Basics - Anfänger-Themen 2
G Methoden Was bedeutet return in einer Methode Java Basics - Anfänger-Themen 5
V Was bedeutet das? Java Basics - Anfänger-Themen 4
G zeile: Was bedeutet das in der Methode? Java Basics - Anfänger-Themen 4
Y Was bedeutet "this" ohne dem Punkt und dem Atrributnamen danach? Java Basics - Anfänger-Themen 2
M was bedeutet setEnabled Java Basics - Anfänger-Themen 12
F Was bedeutet '@'? Java Basics - Anfänger-Themen 3
F Frage von einem Neuling: Was bedeutet Scanner scanner ? Java Basics - Anfänger-Themen 5
K Schlüsselworte Was bedeutet oder was ist die SIGNATUR?? Java Basics - Anfänger-Themen 4
O Was bedeutet public class value? Java Basics - Anfänger-Themen 3
A Was bedeutet der Operator *= ? Java Basics - Anfänger-Themen 2
N Was bedeutet << Java Basics - Anfänger-Themen 5
G Was bedeutet diese Zeile? Java Basics - Anfänger-Themen 2
J Was bedeutet This. ? Java Basics - Anfänger-Themen 4
S Was bedeutet dieser ausdruck? Java Basics - Anfänger-Themen 9
D Was genau bedeutet und bewirkt dieses @override? Java Basics - Anfänger-Themen 15
J Was bedeutet dieses a [i].length? Java Basics - Anfänger-Themen 3
D Was bedeutet < > Java Basics - Anfänger-Themen 4
D Was bedeutet das ?: Java Basics - Anfänger-Themen 9
B Was bedeutet static<T>?? Java Basics - Anfänger-Themen 6
0 Was bedeutet dieser Generic-code? Java Basics - Anfänger-Themen 3
php1 Was bedeutet der Modifier static ? Java Basics - Anfänger-Themen 3
K Was bedeutet das eigentlich.... Java Basics - Anfänger-Themen 18
G Was bedeutet? Java Basics - Anfänger-Themen 7
G Was bedeutet charAt()? Java Basics - Anfänger-Themen 5
J Was bedeutet der Doppelpunkt ":" ? Java Basics - Anfänger-Themen 3
G was bedeutet //TODO Java Basics - Anfänger-Themen 4
A Was bedeutet folgende Programmcodezeile genau Java Basics - Anfänger-Themen 6
L Was bedeutet das Wort "this" ? Java Basics - Anfänger-Themen 2
K was bedeutet '?' Java Basics - Anfänger-Themen 3
R Was bedeutet diese Zeile. Java Basics - Anfänger-Themen 8
S was bedeutet Typisiert? Java Basics - Anfänger-Themen 3
D Was bedeutet : ? Java Basics - Anfänger-Themen 4
M public static void main(String... args)<- Was bedeutet das? Java Basics - Anfänger-Themen 5
H Was bedeutet "class Liste<E>" Java Basics - Anfänger-Themen 2
J was bedeutet null Java Basics - Anfänger-Themen 7
padde479 Compiler-Frage: Was bedeutet deprecated? Java Basics - Anfänger-Themen 4
P Was genau bedeutet Feld Java Basics - Anfänger-Themen 3
G Was bedeutet diese Fehlermeldung von Tomcat Java Basics - Anfänger-Themen 29
G indexOf() - was bedeutet -1 ? Java Basics - Anfänger-Themen 27
P Was genau bedeutet "public static void main(String[] ar Java Basics - Anfänger-Themen 10
G setName bei JTextfield. Was bedeutet das? Java Basics - Anfänger-Themen 7
B Was bedeutet synchronized? Java Basics - Anfänger-Themen 8
D was bedeutet " Seiteneffekt " ? Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben