Es gibt keine Leistung oder anderer offensichtlicher Vorteil für die Verwendung von this.aNumber
vs. nur aNumber
, anders als möglicherweise Klarheit, auf die Objektinstanz die aNumber
gehört. Grundsätzlich kommt es auf Präferenz an.
Wenn nur aNumber
verwendet wird, wird das Präfix this
impliziert.
Ein möglicher Vorteil und ein Fall, in dem die Verwendung der this
notwendig wird, ist, wenn Sie über eine Methode verfügen, die ein Argument an die Methode mit exakt demselben Namen wie eine Klasseninstanzvariable übergeben hat. In diesem Fall muss die Klasseninstanzvariable mit this
vorangestellt werden, um die richtige Eigenschaft für den Zugriff auszuwählen.
Zum Beispiel, wenn Sie eine Klasse und Methode deklariert als:
class ThisExample{
private int aNumber;
public void setANumber(int aNumber){
//Here is is necessary to prefix with 'this' to clarify
//access to the class instance property 'aNumber'
this.aNumber = aNumber;
}
}
Nein, es ist streng und genau das Gleiche. Der Unterschied zwischen den beiden ist eine Frage der Meinung. – Tunaki
Ich sehe kein Leistungsproblem auf beiden. – Priyamal
'this.' wird benutzt, um nur den ** COMPILER ** anzuweisen (der erzeugte Bytecode ist der selbe), was Sie ansprechen wollen, ich habe diese Frage geupdated, weil ich nicht verstehe, warum es -1 sein sollte, es ist eine gültige Frage. Der Vorteil der ersten Methode besteht darin, dass Sie die Benennung von Variablen konsistent halten. Eine gängige Praxis ist es, einen etwas anderen Namen wie 'number' und' Number' zu verwenden, um 'this.number' zu vermeiden. es ist eine schreckliche Praxis (die ich zugeben muss manchmal :)). – n00b