Programmierstil

MatheStein

Aktives Mitglied
Hey Leute,

hab nur eine kurze Frage.
Gibt es irgendwelche Konventionen bzw. gibt es Fälle in denen es schöner wäre ein unnötiges "this" einzufügen.
Wenn ich zum Beispiel innerhalb meiner Klasse eine Klasseninterne Methode "funk()" aufrufe, wäre es dann in manchen Fällen schöner "this.funk()" zu schreiben (für die Übersichtlichkeit oder aus sonstigen Gründen) ??

Gruß und schönes Wochenende an alle :)
 

AmunRa

Gesperrter Benutzer
Das liegt im Auge des Betrachters. Ein Professor von mir möchte eigentlich in keinem Program auch nur einen einzigen this "Pointer" sehen

Persönlich schreib ich diese meist hinein, weil Eclipse mir dann die Methoden und Variablen meiner Klasse anzeigt und ich mir daher die Namen nicht merken muss.
 

tuttle64

Bekanntes Mitglied
Wenn ich zum Beispiel innerhalb meiner Klasse eine Klasseninterne Methode "funk()" aufrufe, wäre es dann in manchen Fällen schöner "this.funk()" zu schreiben (für die Übersichtlichkeit oder aus sonstigen Gründen) ??


Mit this ist es sofort klar, dass es um eine Instanzvariable oder -methode geht. Wie sehr wir uns an Konventionen gewöhnen zeigt sich, wenn man folgenden Code anschaut:

Code:
public class test { public static void main(String[] args) { for (int i=1; i < 4; i++) {System.out.println("Hallo Welt zum " + i + "ten");}}}
 

musiKk

Top Contributor
Man kann in Eclipse einstellen, dass Warnings/Errors produziert werden, wenn kein this verwendet wird, also gibt es wohl schon Leute, die das wollen (und wenn es nur die waren, die dieses Feature gefordert haben). Ich selbst mache das aber auch eher vom Anwendungsfall abhängig und richte mich oft nach der Farbe, wie bygones schon sagt.
 

Wortraum

Bekanntes Mitglied
@MatheStein: Natürlich gibt es solche Konventionen; jedes Unternehmen hat seine eigenen Vorstellungen, wie der Quelltext geschrieben und formatiert werden muß. Die Java-Konventionen von Sun fordern die Verwendung von this jedoch nicht.

Ich probierte einige Wochen die konsequente Nutzung von this sowie danach die konsequente Nutzung von vorangestelltem Unterstrich vor Klassenvariablen (beispielsweise String _id). Beides vereinfacht es, Variablen ihrem sichtbaren Bereich zuzuordnen, doch ich entschied mich letztendlich gegen this, weil die Zeilen zu lang und damit manchmal schlechter lesbar werden. Der vorangestellte Unterstrich war praktisch, besonders, weil man für Getter und Setter nicht neue Namen benötigt und überall auf this verzichten kann. Allerdings fand ich es häßlich, überall Unterstriche zu haben – und führt man die Idee weiter und gibt auch noch Konstanten und privaten Methoden Unterstriche, dann wird es noch häßlicher.

Da normalerweise jeder mit einer Entwicklungsumgebung entwickelt, sind diese Konventionen aber nicht mehr so viel wert, wie sie es vielleicht vor fünfzehn Jahren noch waren. Sinnlos sind sie natürlich nicht, denn mit der Gewohnheit, Klassenvariablen immer mit this anzusprechen, gibt es nie ein Vertun und keine Fehler, daß man ausversehen auf falsche Variablen zugreift.

Letztendlich mache ich es aber nun wieder so, wie ich es davor immer machte: ich verwende this nur, wenn es notwendig ist; in Konstruktoren und Settern verwende ich immer this, denn dort braucht man es ohnehin oft, und so hat man eine ganz klare Regelung und hübschen Quelltext.
 
Zuletzt bearbeitet:

Landei

Top Contributor
Ich verwende niemals Bezeichner mit Unterstrich, um das this zu sparen. this nehme ich normalerweise nur da, wo es nötig ist, bzw. aus "Symmetriegründen" wenn ich mit einem weiteren Objekt der Klasse arbeite (das dann sinnigerweise "that" heißt).
 
G

Gast2

Gast
Auch wenn der Thread schon äter ist:

Ich persönlich mag es lieber wenn überall wo es geht ein this verwendet wird, da einfach der zugehörige Scope damit klasklar ist.

Gibts auch in NetBeans die Möglichkeit eine Warnung zu werfen wenn kein this verwendet wird? Finde dazu leider nichts.

PS: Wie sieht es innerhalb anonymer Klassen aus. Wenn ich dort auf eine Methode (z.B. handleEvent ect.) zugreifen will geht das ja nicht über this, da this auf die anonyme Klasse zeigt.
Gibt es dafür ein äquivalent? Im moment rufe ich die Methoden einfach mit dem Namen auf (Könnte ja zu Problemen führen wenn die Anonyme Klasse eine gleichnamige Methode besitzt!)
 

faetzminator

Gesperrter Benutzer
Ich verwende [c]this[/c] fast ausschliesslich in Settern. Ich will nicht überall 5 Zeichen mehr Code haben. Normalerweise verwende ich die Variablen eh nicht direkt, sondern über die jeweiligen Methoden. Und da sollte der Scope klar sein - auch wenns inzwischen statische Imports gibt.
PS: Wie sieht es innerhalb anonymer Klassen aus. Wenn ich dort auf eine Methode (z.B. handleEvent ect.) zugreifen will geht das ja nicht über this, da this auf die anonyme Klasse zeigt.
[c]OberKlasse.this.foo()[/c]?
 
G

Gast2

Gast
Ich verwende [c]this[/c] fast ausschliesslich in Settern. Ich will nicht überall 5 Zeichen mehr Code haben. Normalerweise verwende ich die Variablen eh nicht direkt, sondern über die jeweiligen Methoden. Und da sollte der Scope klar sein - auch wenns inzwischen statische Imports gibt.

[c]OberKlasse.this.foo()[/c]?

Ich überlege mir das noch mal mit den this überall.

Macht schon auch Sinn die nur in Settern zu nutzen (da mach ich es eh)

Aber vielen Dank für das Oberklasse.this.foo() War mir nicht bekannt!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Avalon Programmierstil beim Mocken Java Basics - Anfänger-Themen 45
S Zugriff auf protected Fields = guter Programmierstil? Java Basics - Anfänger-Themen 11
K Sauberer Programmierstil? Java Basics - Anfänger-Themen 3
M Best Practice Programmierstil Graphen-A*-Suche Java Basics - Anfänger-Themen 5
F Erste Schritte Frage zum Programmierstil Java Basics - Anfänger-Themen 11
A OOP Fragen zu Programmierstil Java Basics - Anfänger-Themen 18
I Programmierstil Java Basics - Anfänger-Themen 64
E Richtiger Programmierstil ? Java Basics - Anfänger-Themen 51
M Sind ternäre Operatoren für einen guten Programmierstil wichtig ? Java Basics - Anfänger-Themen 10
B Frage zu Programmierstil: sollte Hauptklasse nur main enthalten? Java Basics - Anfänger-Themen 6
G Guter Programmierstil? Java Basics - Anfänger-Themen 8
G Guter Programmierstil? Java Basics - Anfänger-Themen 4
D Programmierstil - Bei Vererbung welchen Typ benutzen? Java Basics - Anfänger-Themen 8
Bernasconi Programmierstil / Wann eine neue Datei? Java Basics - Anfänger-Themen 5
K guter Programmierstil Java Basics - Anfänger-Themen 3
C Programmierstil und OOP Java Basics - Anfänger-Themen 7
M Programmierstil Java Basics - Anfänger-Themen 17
D Programmierstil Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben