Code Conventions?
-
Was soll denn das mit den Unterstrichen immer? Ist das wirklich soooo schlimm, wenn man wirklich mal ein gleichnamiges Argument übernimmt, was man übrigens vermeiden kann, ein this davor zu schreiben?
Und einen besseren Vorschlag, als sich an die Java-Konventionen zu halten, kann man wirklich nicht machen. Und diese sehen keine derart hässliche Namensgebung vor.
-
Dem kann ich mich eigentlich nur anschließen. Unterstriche sind IMHO Schrott.
Allerdings kann man bei gleichen Namen für Membervariablen und lokale Variablen natürlich schnell mal Fehler machen, die vielleicht nicht auf den ersten Blick zu finden sind. Wie Optimizer aber schon gesagt hat, kann man gleiche Namen auch ohne Unterstriche leicht vermeiden, wenn man denn Probleme damit hat.
-
was haben eigendlich alle gegen 'this' ich finde das ist am übersichtlichsten.
-
stevg schrieb:
was haben eigendlich alle gegen 'this' ich finde das ist am übersichtlichsten.
Das Problem beim "this" ist, dass man es vergessen kann, was zu einem Fehler führt, der erst zur Laufzeit auffällt.
-
Bei mir ergibt es sich meistens, dass Parameter anders heißen als Datenelemente. Und wenn nicht, dann würde ich höchstens dem Paramter ein hässliches Präfix verpassen, weil ich den nur in einem kurzen Kontext verwende.
Die Lösung mit this ziehe ich aber dann vor.
-
Gregor schrieb:
stevg schrieb:
was haben eigendlich alle gegen 'this' ich finde das ist am übersichtlichsten.
Das Problem beim "this" ist, dass man es vergessen kann, was zu einem Fehler führt, der erst zur Laufzeit auffällt.
so hab ich das noch gar nicht gesehen - eigenartig dass mir da noch nichts passiert ist, denn ich nutze eigendlich immer this ...
-
Gregor schrieb:
stevg schrieb:
was haben eigendlich alle gegen 'this' ich finde das ist am übersichtlichsten.
Das Problem beim "this" ist, dass man es vergessen kann, was zu einem Fehler führt, der erst zur Laufzeit auffällt.
Wobei ein vernuenftiger Compiler bei
foo = foo;
doch warnen sollte, oder?
-
SG1 schrieb:
Gregor schrieb:
stevg schrieb:
was haben eigendlich alle gegen 'this' ich finde das ist am übersichtlichsten.
Das Problem beim "this" ist, dass man es vergessen kann, was zu einem Fehler führt, der erst zur Laufzeit auffällt.
Wobei ein vernuenftiger Compiler bei
foo = foo;
doch warnen sollte, oder?
mag sein, es gibt aber auch fälle in denen du mit foo etwas rechnest:
x = Math.pow(this.foo, a); x = Math.pow(foo, a); // this vergessen
und hier zu warnen macht wenig sinn.
und ich denke diese situation ist eine häufigere fehlerursache als "foo = foo;"
-
stevg schrieb:
x = Math.pow(this.foo, a); x = Math.pow(foo, a); // this vergessen
und hier zu warnen macht wenig sinn.
und ich denke diese situation ist eine häufigere fehlerursache als "foo = foo;"
Es ging um Getter- und Setter-Methoden, oder? Bei allen anderen stellt sich das Problem der gleichen Variablen doch gar nicht.
-
In der Tat, in welcher Methode übergibt man schon ein Argument, dass wie ein Datenelement heisst?
-
Durch die Eindeutigkeit der get- bzw. set-Methoden empfehle ich stets den selben Variablennamen in der Methodensignatur zu verwenden - nämlich newValue bzw newObject. Dies wird auch von den meisten fireXYZEvent()-Methoden im JDK gemacht und hilft dabei zuverlässig den Problemen der Nomenklatur aus dem Weg zu gehen. Die Benutzung von this halte ich für Geschmackssache - es ist möglich, also warum auch nicht nutzen? Viel wichtiger halte ich es, einen Standard anzunehmen und den dann auch konsequent durchzuziehen.
Beispiel:
public class MyHyperClass { int hyperLimit; Object dataObject = null; ... public MyHyperClass() { ... } public int getHyperLimit() { return hyperLimit; } public void setHyperLimit(int newValue) { hyperLimit = newValue; } public Object getDataObject() { return dataObject; } public void setDataObject(Object newObject) { if (newObject != null) dataObject = newObject; } ... }
-
Konstruktoren und Setter
-
Probleme mit der Artikulation? "Was will uns diese Werbesendung sagen?"
-
Guck auf die Zeiten, zu denen wir gepostet haben.
-
Bashar schrieb:
Konstruktoren und Setter
Da haben wir ja schon festgestellt, das die Verwendung von this nicht verwirrend sein sollte.
-
CengizS schrieb:
Durch die Eindeutigkeit der get- bzw. set-Methoden empfehle ich stets den selben Variablennamen in der Methodensignatur zu verwenden - nämlich newValue bzw newObject.
<edit> die glühbirne sollte einsicht demonstrieren
-
Entweder stehe ich auf dem Schlauch oder ihr. Was willst Du mir nun damit sagen?
-
Dass meine Antwort nicht an dich gerichtet war.
-
wer spricht ihr mit wem ?
-
Ich sehe schon ... lassen wirs Ich hatte eigentlich stevg gemeint aber nun ist es auch egal ...