this - Programmierrichtlinien
-
Hi,
ich wurde vor einiger Zeit drauf hingewiesen, dass mein code unübersichtlich ist, da ich zuviel mit dem Wort "this" in den Klassenimplementierungen hantiere.
Dies sieht in etwa so aus:
class Test { private int variable; private char variable2; private int sowiso() { // tue was } // ... public void function() { this.variable = 1; this.variable2 = 'c'; this.variable = this.sowiso(); // ...usw... } }
Die Frage die sich jetzt stellt: Ist es ein schlechter Still immmer das Schlößelwort "this" zu nutzen? Wie sieht es bei Java aus und wie in C++?
Bis dato habe ich immer mit dem Schlößelwort this gearbeitet, es sei denn es handelt sich um lokale Variablen oder um Funktionsparameter.
Für Eure Tipps zum sauberen Aufbau des codes wäre ich sehr dankbar
Gruß
-
Ich benutze this praktisch ausschliesslich im Konstruktor und in setFoo-Methoden. In den beiden Faellen heissen die Parameter meisst genau wie die zu setzende Variable, daher geht's nicht ohne.
In allen anderen Faellen vermeide ich this, weil ich es fuer ueberfluessige (und somit stoerende) Information halte - dass es keine lokale Variable ist, meldet mir ein Blick wenige Zeilen nach oben.
-
Ich stimme meinem Vorredner zu.
Allerdings könnte man das viele "this" auch als Hinweis an dern Entwickler sehen.
"Achtung du änderst hier Klassenparameter".
--- aber ich mein . dazu sind ja Methoden da, oder nicht?
-
Was machen den setFoo-Methoden? Gehen die nur mit this?
-
Hallo
Ich glaube das Problem git es dann, wenn der übergegbene Parameter genauso heißt wie der member. Dann benutzt man halt this->chrische
-
In deinem Beispiel ist echt sinnlos this zu benutzen.
void setFoo(int foo) { this.foo = foo; }
-
Vielen Dank für die zahlreichen Antworten. Wie es also scheint ist das nur meine Make das "this" ständig und überall zu nutzen. Da muss ich wohl umdenken.
Gruß
-
DEvent schrieb:
In deinem Beispiel ist echt sinnlos this zu benutzen.
void setFoo(int foo_) { foo = foo_; }
?
-
_toller_variablen_namen_
-
this.ohJaStimmtSoIstVielBesserLesbar
-
Es vergessen. :p
-
siehst Du, das kommt davon
-
Geschmackssache.
Ich hasse Unterstriche in Namen.
Einer der Gründe warum mir damals die STL unleserlich war.
-
DEvent schrieb:
Geschmackssache.
Ich hasse Unterstriche in Namen.Geht mir genauso.
-
Geschmackssache
Ich hasse this
-
Kleine Hasen hassen große Hasen die nach Sachen schmecken.
-
Was mich aber eher interessieren würde, wäre die Frage ob ihr this bei Methoden benutzt? Besonders bzw. eigentlich nur bei Methoden, die man durch Vererbung zur Verfügung hat, frag ich mich, ob ich this verwenden sollte um darauf hinzuweisen, dass es von der super Klasse "kommt" (um z.B: statische imports auszuschliessen), wobei das meines Erachtens schon den Charakter von einem Präfix erhält und eigentlich auch mit der IDE nachvollziehbar sein sollte.