Heim >Java >javaLernprogramm >Zwei spezielle Variablen in Java this und super
In Java gibt es zwei ganz besondere Variablen: this und super. Diese beiden Variablen müssen vor der Verwendung nicht deklariert werden. Diese Variable wird innerhalb einer Member-Funktion verwendet und zeigt auf das aktuelle Objekt. Das aktuelle Objekt bezieht sich auf das Objekt, das die aktuell ausgeführte Methode aufruft. Die Supervariable zeigt direkt auf den Konstruktor der Superklasse und wird zum Referenzieren von Variablen und Methoden in der Superklasse verwendet. Es sind also alles sehr nützliche Variablen. Jetzt möchte ich vorstellen, wie man diese und super verwendet.
1. Dies
Schauen wir uns zunächst einen Code an:
class PersonInformation
{
Stringname, Geschlecht, Nationalität, Adresse;
int age; =p_name;
Geschlecht=p_gender;
nationality=p_nationality;
address=p_address;
age=p_age;
}
Sie werden feststellen, dass die Methodenaufforderung dieses Objekts in der Funktion PersonInformation() direkt auf die Mitgliedsvariablen des Objekts zugreifen kann und im selben Bereich sind zwei identische Namen definiert. Lokale Variablen sind nicht zulässig. Wenn Sie wirklich möchten, dass die Mitgliedsvariablen der Klasse denselben Namen haben wie die Parameter der Methode oder die von der Methode selbst definierten lokalen Variablen. Sie müssen sich eine Möglichkeit überlegen, die Mitgliedsvariablen von den Methodenparametern oder lokalen Variablen mit demselben Namen zu unterscheiden. Wir müssen diese Variable verwenden. Als nächstes möchte ich den obigen Code so umschreiben, dass jeder Parameter des Konstruktors der PersonInformation-Klasse denselben Namen wie die Objektmitgliedsvariable hat und der Anfangswert der Mitgliedsvariablen durch den Parameter angegeben wird.
class PersonInformation
{
String Name, Geschlecht, Nationalität, Adresse
int age;
void PersonInformation(String name ,String Geschlecht,String Nationalität,String Adresse,int Alter)
{
this.name=name;
this.gender=gender;
this.nationality=nationality;
this.address=address;
this.age=age;
}
Aus dem vorherigen Beispiel können wir Beachten Sie, dass dies im Konstruktor verwendet werden muss, um auf die Objektinstanz zu verweisen, die auf die aktuell ausgeführte Methode verweist Beispielsweise müssen wir den Parameternamen vom Namen der Mitgliedsvariablen unterscheiden. Das Schreiben von name=name ist offensichtlich nicht zulässig, wenn der Parameter- oder lokale Variablenname denselben Namen wie die Klassenmitgliedsvariable hat Priorität, auf diese Weise, in der Methode Der Parametername oder der lokale Variablenname im Körper verbirgt die Mitgliedsvariable mit demselben Namen. Um die Mitgliedsvariable zu bewerten, müssen Sie dies daher verwenden, um das aktuelle Objekt explizit anzugeben.
Manchmal stoßen wir auf diese Situation. Wir greifen vollständig auf das aktuelle Objekt zu, anstatt auf ein einzelnes Instanzobjekt zuzugreifen. Wir können dies auch verwenden und die toString()-Methode in Java verwenden (sie kann eine Zeichenfolge zurückgeben, die dieses Objekt beschreibt). Wenn ein Objekt an die Methode System.out.PRintln übergeben wird, ruft diese Methode die toString-Methode dieses Objekts auf und gibt die resultierende Zeichenfolge aus. Daher können wir zum Ausdrucken die folgende Methode System.out.println(this) verwenden den aktuellen Status aller intrinsischen Parameter der Methode.
Es gibt eine andere Verwendung dafür, nämlich die erste Anweisung des Konstruktors. Seine Form ist diese (Parameterliste). Dieser Konstruktor ruft einen anderen relativen Konstruktor derselben Klasse auf. Sehen Sie sich bitte das folgende Beispiel an:
class UserInfo
{
public UserInfo(String name)
{
this(name, aNewSerialNumber);
}
public Userinfo(String name,int number)
{
userName=name;
userNumber= number;
}
}
Wenn Sie UserInfor aufrufen, newinfotable = new UserInfo("Wayne Zheng"), UserInfo(String
Das Obige ist das Inhalt der beiden speziellen Variablen this und super in Java Weitere verwandte Artikel finden Sie auf der chinesischen PHP-Website (www.php.cn)