Frage: Sollte man überall this. verwenden?

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 Beiträge

5 Gedanken zu “Frage: Sollte man überall this. verwenden?

  1. Tja so unterschiedlich kann Erfahrung sein… Ich will IMMER sehen, ob eine Variable lokal, global oder statisch ist – das heißt ich hab sogar Eclipse so eingestellt, das this oder der Klassenname automatisch ergänzt wird.

    Und Überschattung vermeide ich grundsätzlich. Bei ’nem einfachem Setter ist es noch wurscht, aber sobald eine Methode mehr macht, als eine Variable zuzuweisen, benenn ich eine der beiden Variable um.

    Mal davon abgesehen – hast du irgendein sinnvolles produktives Beispiel für eine Überschattung?

    Und wieso erlauben deine Felder für Name, Email und Website nur Großbuchstaben?

  2. Ich überschatte nur bei Settern und halte es für sinnvoll, die Variablen gleich zu nennen, um die Nähe auszudrücken. Sonst sollte man nicht überschatten, das gibt nur Ärger mit dem Kontext. Ganz blöd wird es bei inneren Klassen und das solchen Klasse.this-Konstruktionen.

    Wenn dir das this hilft, ist das gut! Das steht bei der Entwicklung im Vordergrund, weil Programme mehr gelesen als geschrieben werden. Ich kann darauf verzichten, und ich kann mich nicht daran erinnern, dass ich einmal nicht wusste, ob eine Variable lokal oder eine Objekt/Klassenvariable ist. Teste das doch einfach mal 🙂 Du hast dich einfach dran gewöhnt. Lass das this mal weg und schaue, ob dir wirklich der Kontext fehlt.

    Warum alles GROSS? Hat die Designerin der Vorlage so gemacht 🙂

  3. Schade ich dachte du kannst diesem sinnlosen Feature noch einen Sinn geben.

    Wenn ich nur anhand des this erkennen könnte, ob die Variable lokal oder global ist, hätte ich schon lange vorher irgendwas gründlich falsch gemacht. Mindestens die Methode wäre viel zu lang.

    Aber ich bestehe aus einem anderem Grund auf dem this: Ich will jede Information möglichst explizit präsentiert bekommen – ich will keinen Gedanken daran verschwenden müssen, ob die Variable lokal oder global ist. Wenn ich das this jedes Mal tippen müsste, würde ich wohl auch drauf verzichten, aber Eclipse erledigt das ja automatisch.

    Bei Methodenaufrufen ist es das gleiche: Ich erkenne schneller, dass es sich um eine lokale Methode und nicht irgendwas anderes handelt.

    Aber letzten Endes ist es wohl tatsächlich nur eine Frage des Trainings der persönlichen Mustererkennung…

    PS: Wie hältst du das denn mit statischen Variablen?

    PPS: EMAIL-ADRESSEN UND WEBSITES IN GROSSBUCHSTABEN SEHEN IRGENDWIE MERKWÜRDIG AUS 😉

  4. Bei dem ganzen Boilerplate von Java, bin ich eigentlich ganz froh, dass this nicht dastehen muss.

    Allerdings hatte ich schon ein paar Fälle, in denen mir der direkte Zugriff auf Objektvariablen später Probleme brachte, weshalb ich sowieso dazu tendiere dafür getter und setter zu verwenden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert