Guter Programmierstil? this immerverwenden?

usrr

Bekanntes Mitglied
Hallo,

kurz und knapp: Ich habe mal gehört es wäre ein guter Stil, wenn man bei globalen Variablen und Methoden immer das "this." voranstellt. Selbst dann, wenn es unnötig ist.

So, dass habe ich bisher immer gemacht. Allerdings zweifele ich an dem Sinn. Erstens macht es unnötig arbeit und zweitens macht es den Code schwerer zu lesen.

Kann es sein, dass mir da jemand Unsinn erzählt hat?

Grüße
 

tfa

Top Contributor
Letztendlich ist das Geschmackssache. Wenn es dir nicht gefällt, lass es eben. Eine moderne GUI kann Member-Variablen (nicht globale) auch ohne "this" so hervorheben, dass man sie erkennt. Andererseits kann man die "this" auch automatisch an den passenden Stellen einfügen lassen, das erspart dann die Tipparbeit.
 

Empire Phoenix

Top Contributor
Also ich habe eclipse be mir so eingestellt, dass es autoamtisch immer alle this, Classenname.variable ectl reinhaut.

Vorteil, jemand der den code nicht kennt sieht auf anhieb sofort wohin er die variablezugriffe zuordnen soll.
Eclipse macht das zwar auch mit Farben, aber ab und zu steht man mal auffem Schlauch, und ein this ist halt doch auffälliger
 

Gregorrr

Bekanntes Mitglied
In Android hat sich ein Präfix m- etabliert, z.B.
Code:
 int mMyVariable
,
Code:
statt int myVariable
. Wenn man in Eclipse m drückt, dann gibt die Autovervollständigung schön alle Member-Variablen (m steht für Member) an.

Ich persönlich halte unnötige
Code:
this
für totalen Blödsinn (sorry). Es bläht unnötig den sowieso schon totalen Java Boilerplate auf. Ich sage ja auch nicht vor jedem Satz, den ich spreche jedes mal unnötig: "Jetzt spreche ich, ... Satz den ich sagen will....", sonder sage direkt den Satz den ich sagen will, ausser in den Fällen wo es zu Namenkollisionen kommen kann (bspw. bei vielen Leuten in einem Raum).

Wenn man
Code:
this
zum Lesen braucht, könnte es sein, dass der Code unnötig komplex ist und nicht gut strukturiert ist.
 
T

Tomate_Salat

Gast
Kann man bei Eclipse die nicht nötigen this. evtl. per Shortcut hinzufügen bzw. entfernen?
Kann man sicher als Save-Action definieren.

Ich persönlich setze [c]this[/c] nur da wo es wirklich notwendig ist. Ein this als Markierung ist meiner Meinung nach nicht notwendig. Eclipse/Intellij IDEA (hab ich beide zufällig gerade offen) heben Membervariablen in einer anderen Farbe hervor. Zusätzlich erkennt man es auch im Outline.

---

Das [c]m[/c]Variable von Android finde ich aber auch suboptimal. Wenn ich mir einen einfachen Getter/Setter generiern lasse, kann ich den trotzdem nochmal anpassen.
 
B

bygones

Gast
In Android hat sich ein Präfix m- etabliert, z.B.
Code:
 int mMyVariable
,
Code:
statt int myVariable
. Wenn man in Eclipse m drückt, dann gibt die Autovervollständigung schön alle Member-Variablen (m steht für Member) an.
halte ich fuer unnoetig. Allein durch das icon sieht man schon bei der Autovervoll. was instanzvariablen ist.

und was macht man wenn man noch einige Variablen wie "minute", "month", "mama", "mouse" oder was auch immer mit 'm' hat ?

man sollte keinen Code haben bei den an einer stelle 100 variablen rumschwirren, sodass die Autovervoll. zu gross wird.

ich habe this nur im Konstruktor, wenn ich mir die Parameter von Eclipse als Instanzvariablen hinzuweisen lassen.
 

mvitz

Top Contributor
...

---

Das [c]m[/c]Variable von Android finde ich aber auch suboptimal. Wenn ich mir einen einfachen Getter/Setter generiern lasse, kann ich den trotzdem nochmal anpassen.

Ich finde diesen Präfix auch schrecklich, aber bezüglich getter/setter, da kann man in Eclipse auch Prefixe/Suffixe für Variablen bestimmen, die dann beim Getter/Setter explizit weggelassen werden.
 

usrr

Bekanntes Mitglied
Bei Eclipse gibt es im Source-Menü den Befehl "Clean Up ...". Damit kann man den Code schnell und bequem von unötigen this. befreien oder auch überall welche zufügen.
 

Ullenboom

Bekanntes Mitglied
Ich verwende es nicht, aus einem guten Grunde: Ein this macht mir explizit deutlich, dass es eine lokale Variable gibt, die vom Namen hier die Objektvariable überdeckt, siehe typisches Beispiel vom Getter:

public void setAge( int age )
{
this.age = age;
}

Wenn ich this. sehe, erwarte ich einfach, dass es eine Überschattung gibt und ich würde mich wundern, wenn this. einfach "nur so" verwendet wird. Ich finde es wichtig, dass man durch solche Idiome etwas aussagt.
 

Ähnliche Java Themen

Neue Themen


Oben