Heim  >  Artikel  >  Java  >  Detaillierte Erklärung zur Verwendung von This in Java

Detaillierte Erklärung zur Verwendung von This in Java

黄舟
黄舟Original
2017-09-08 09:44:542807Durchsuche

Dieser Artikel stellt hauptsächlich relevante Informationen mit detaillierten Beispielen für die Verwendung von This in Java vor. Ich hoffe, dass durch diesen Artikel jeder die Verwendung dieses Schlüsselworts verstehen und beherrschen kann

Java Detaillierte Erläuterung von Beispielen für diese Verwendung in

Beim Definieren einer Variablen mit einem Klassennamen wird nur eine Referenz definiert, und die Außenwelt kann über diese auf die Eigenschaften und Methoden in dieser Klasse zugreifen diese Referenz.

Gibt es in der Klasse ausreichend oder sollte es eine Referenz geben, um auf ihre eigenen Eigenschaften und Methoden zuzugreifen?

Haha, Java bietet eine sehr gute Sache, nämlich dieses Objekt, das auf die Eigenschaften und Methoden dieser Klasse in der Klasse verweisen kann. Nehmen wir zunächst ein einfaches Beispiel:


public class ThisDemo { 
  String name="Mick";
  public void print(String name){
    System.out.println("类中的属性 name="+this.name);
    System.out.println("局部传参的属性="+name);
  }  
  public static void main(String[] args) {
    ThisDemo tt=new ThisDemo();
    tt.print("Orson");
  }
}

Für die Rückgabe einer Referenz auf die Klasse selbst gibt es ein klassisches Beispiel in „Thinking in Java“.

Geben Sie das Objekt selbst über dieses Schlüsselwort zurück und implementieren Sie dann mehrere Operationen in einer Anweisung oder veröffentlichen Sie es.


public class ThisDemo { 
  int number;
  ThisDemo increment(){
     number++;
     return this;
  } 
 private void print(){
     System.out.println("number="+number);
  }
  public static void main(String[] args) {
    ThisDemo tt=new ThisDemo();
     tt.increment().increment().increment().print();
  }
}

Es sollte möglich sein, zwei Konstruktoren in einer Klasse zu definieren und den anderen Konstruktor in einem Konstruktor über diese Referenz aufzurufen.

Welchen Nutzen hat ein solcher Implementierungsmechanismus in der tatsächlichen Anwendungsentwicklung? Veröffentlichen Sie den unten geschriebenen Code:


public class ThisDemo { 
  String name;
  int age;
  public ThisDemo (){ 
    this.age=21;
  }   
  public ThisDemo(String name,int age){
    this();
    this.name="Mick";
  }   
 private void print(){
     System.out.println("最终名字="+this.name);
     System.out.println("最终的年龄="+this.age);
  }
  public static void main(String[] args) {
    ThisDemo tt=new ThisDemo("",0); //随便传进去的参数
    tt.print();
  }
}

Obwohl der obige Code sehr kurz ist, scheint es sehr logisch zu sein, den Namen im Konstruktor mit Parametern zuzuweisen das Altersattribut ohne Parameter.

Aber ich persönlich denke, dass es ein Problem gibt, wenn man eine Klasse instanziiert, man sollte zuerst Speicher für das Objekt ThisDemo zuweisen und zuerst den Konstruktor ThisDemo(String name, int age) aufrufen.

Rufen Sie beim Ausführen der ersten Zeile den ThisDemo()-Konstruktor auf. Dies bedeutet, dass zwei Speicherplätze vorhanden sein sollten, einer ist der für ThisDemo(String name, int age) zugewiesene Speicherplatz und der andere ist der Ausführungsbereich von ThisDemo().

Warum werden die beiden Attribute Name und Alter im selben Objekt im endgültigen Druckergebnis instanziiert? Bitte klären Sie mich auf!

Zusammenfassend:

1) Das Schlüsselwort this ist ein Verweis auf sich selbst innerhalb der Klasse, der Methoden in der Klasse den Zugriff auf ihre eigenen Eigenschaften erleichtern kann

2) Sie können einen Verweis auf die eigene Klasse des Objekts zurückgeben und in einem Konstruktor auch einen anderen Konstruktor aufrufen.

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung zur Verwendung von This in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn