Heim  >  Artikel  >  Java  >  Wofür wird dieses Schlüsselwort in Java verwendet?

Wofür wird dieses Schlüsselwort in Java verwendet?

王林
王林Original
2020-10-19 15:03:0933545Durchsuche

Verwendung dieses Schlüsselworts in Java: 1. Rufen Sie die Attribute in dieser Klasse auf, dh die Mitgliedsvariablen in der Klasse. 2. Rufen Sie andere Konstruktoren in dieser Klasse auf, die erforderlich sind Aufruf: Platzieren Sie es in der ersten Zeile der Konstruktormethode.

Wofür wird dieses Schlüsselwort in Java verwendet?

Dieses Schlüsselwort hat drei Hauptanwendungen:

this ruft die Attribute in dieser Klasse auf, also die Mitgliedsvariablen in der Klasse;

this ruft die anderen Methoden auf In dieser Klasse müssen andere Konstruktoren beim Aufruf in der ersten Zeile des Konstruktors platziert werden.

Mitgliedsvariablen aufrufen

(Empfohlenes Tutorial:

Java-Kurs

)In Kombination mit dem Code wird es spezifischer. Beziehen Sie sich auf den folgenden Code:

public class Student{
    String name;
    private void SetName(String name){
        this.name = name;
    }
}

In diesem Code wird eine Klasse Student mit einem Mitgliedsvariablennamen und einer Mitgliedsmethode SetName (Stringname) erstellt, da der von der Mitgliedsmethode empfangene formale Parametername mit dem identisch ist Mitgliedsvariable, beide sind name , daher können Sie hier das Schlüsselwort this verwenden, um Mitgliedsvariablen in dieser Klasse aufzurufen. Seine Funktion kann einfach wie folgt verstanden werden: Das Schlüsselwort this dient zum Aufrufen der Mitgliedsvariablen in dieser Klasse.

Ein so einfaches Verständnis ist jedoch nicht korrekt. Dies ist tatsächlich ein Verweis auf das aktuelle Klassenobjekt. Der Zugriff auf die Mitgliedsvariablen des Objekts erfolgt über den Verweis auf das von dieser Klasse instanziierte Objekt.

Hinweis:

Dieses Schlüsselwort wird beim Zugriff auf Mitgliedsvariablen und Mitgliedsfunktionen einer Klasse nicht durch Zugriffsberechtigungen gesteuert. Sie können auf alle Mitgliedsvariablen und -methoden in dieser Klasse zugreifen, einschließlich privater Mitgliedsvariablen und -methoden. Sie können hierüber auch auf statische Mitglieder dieser Klasse zugreifen. Da auf statische Mitglieder jedoch direkt über den Klassennamen zugegriffen werden kann, wird bei diesem Zugriff die Warnmeldung „Auf das statische Feld ××× sollte in a zugegriffen werden“ angezeigt statischer Weg". Dies kann nicht innerhalb eines statischen Mitglieds einer Klasse oder innerhalb eines statischen Blocks verwendet werden.

Um Mitgliedsmethoden aufzurufen

, beziehen Sie sich bitte auf den folgenden Code:

package Test;

public class ThisTest {
    String name;

    private void setName(String name) {
        this.name = name;
        System.out.println("setName: " + this.name);
    }

    private void thisTest(String name) {
        this.setName(name);
        System.out.println("thisTest: " + this.name);
    }

    public static void main(String[] args) {
        ThisTest tt = new ThisTest();

        tt.setName("Yida");
        tt.thisTest("Jenny");

    }
}

In diesem Code wird zuerst die Testklasse erstellt. Diese Klasse unterscheidet sich nicht von der vorherigen, außer dass eine Mitgliedsmethode thisTest() hinzugefügt wird . In dieser Member-Methode wird die vorherige Member-Funktion setName() über das Schlüsselwort this aufgerufen und das Ergebnis der Programmausführung ist wie folgt:

setName: Yida
setName: Jenny
thisTest: Jenny

Rufen Sie den Konstruktor auf

Der Konstruktor wird automatisch aufgerufen, wenn ein Objekt einer Klasse erstellt wird über das Schlüsselwort new im Programm Es kann nicht wie andere Methoden über den Methodennamen (dh den Klassennamen) aufgerufen werden. Wenn eine Klasse jedoch mehrere Konstruktoren hat, können Sie über diesen (paras...) in einem Konstruktor andere Konstruktoren aufrufen.

Die Verwendung dieser Funktion zum Aufrufen anderer Konstruktoren unterliegt den folgenden Einschränkungen:

Sie können andere Konstruktoren nur über diese Funktion im Konstruktor aufrufen und sie nicht in normalen Methoden verwenden.

Der Konstruktor kann dadurch nicht rekursiv aufgerufen werden, das heißt, der Konstruktor selbst kann dadurch in einem Konstruktor weder direkt noch indirekt aufgerufen werden.

Der Aufruf anderer Konstruktoren hierüber muss in der ersten Zeile des Konstruktors ausgeführt werden.

Da Super-Aufrufe den Konstruktor der übergeordneten Klasse auch in der ersten Zeile des Konstruktors ausführen müssen, können Super und Super nicht gleichzeitig im selben Konstruktor erscheinen. Sie können verschiedene Konstruktoren nicht mehrmals in einem Konstruktor aufrufen.

Der folgende Code ist falsch, da ein rekursiver Aufruf über das Schlüsselwort this gebildet wird:

//错误的示例!!!
class test {
    test() {
        this(1);
    }
    test(int a){
        this();
    }
    tes int b) {
        this(1, 2);
    }
}

Die korrekte Verwendung lautet wie folgt:

public class Student { //定义一个类,类的名字为student。 
    public Student() { //定义一个方法,名字与类相同故为构造方法
        this(“Hello!”);
    }
    public Student(String name) { //定义一个带形式参数的构造方法
    }
}

Gibt den Wert des Objekts zurück

Zusätzlich zur Referenzierung von Variablen oder Mitgliedsmethoden ist das this Schlüsselwort can und eine weitere wichtige Funktion besteht darin, einen Verweis auf die Klasse zurückzugeben. Im Code können Sie beispielsweise „return this“ verwenden, um einen Verweis auf eine Klasse zurückzugeben. Zu diesem Zeitpunkt stellt das Schlüsselwort this den Namen der Klasse dar. Wenn sich der Code in der oben genannten Schülerklasse befindet, dann steht der Code für den Rückkehrschüler. Es ist ersichtlich, dass das Schlüsselwort this neben der Referenzierung von Variablen oder Mitgliedsmethoden auch als Rückgabewert der Klasse verwendet werden kann. Dies ist der auffälligste Teil des Schlüsselworts this.

Verwandte Empfehlungen:

Erste Schritte mit Java

Das obige ist der detaillierte Inhalt vonWofür wird dieses Schlüsselwort in Java verwendet?. 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