Maison  >  Article  >  Java  >  Quelle est l'utilisation de ce mot-clé en Java

Quelle est l'utilisation de ce mot-clé en Java

王林
王林original
2020-10-19 15:03:0933545parcourir

Utilisation de ce mot-clé en java : 1. Appelez les attributs de cette classe, c'est-à-dire les variables membres de la classe ; 2. Appelez d'autres méthodes de cette classe 3. Appelez d'autres constructeurs de cette classe ; il doit être placé sur la première ligne du constructeur lors de son appel.

Quelle est l'utilisation de ce mot-clé en Java

Ce mot-clé a trois applications principales :

cela appelle les attributs de cette classe, c'est-à-dire les variables membres de la classe

this appelle d'autres méthodes de cette classe ;

this appelle d'autres constructeurs de cette classe. L'appel doit être placé dans la première ligne du constructeur.

Appel de variables membres

(Tutoriel recommandé :

cours java)

Combiné avec le code, il sera plus précis. Reportez-vous au code suivant :


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

Dans ce code, une classe Student est créée, avec un nom de variable membre et une méthode membre SetName (String name) puisque le nom du paramètre formel et le membre reçu par). la méthode membre Les variables sont les mêmes, les deux sont des noms, vous pouvez donc utiliser le mot-clé this ici pour appeler les variables membres de cette classe. Sa fonction peut être simplement comprise comme suit : le mot-clé this est d'appeler les variables membres de cette classe.

Mais une compréhension aussi simple n'est pas exacte. Il s'agit en fait d'une référence à l'objet de classe actuel. Les variables membres de l'objet sont accessibles via la référence à l'objet instancié par cette classe.

Remarque :

Ce mot-clé n'est pas contrôlé par les autorisations d'accès lors de l'accès aux variables membres et aux fonctions membres d'une classe. Il peut accéder à toutes les variables et méthodes membres de cette classe, y compris les variables membres privées. et les méthodes. Vous pouvez également accéder aux membres statiques de cette classe via ceci. Cependant, étant donné que les membres statiques sont directement accessibles via le nom de la classe, si vous accédez via cela, un message d'avertissement s'affichera : "Le champ statique ××× doit être accessible dans un manière statique". Cela ne peut pas être utilisé dans un membre statique d'une classe ou dans un bloc statique.

Appeler la méthode membre

Vous pouvez vous référer au code suivant :

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");

    }
}

Dans ce code, la classe Test est d'abord créée, qui n'est pas différente de la précédente, sauf qu'une méthode membre thisTest(). Dans cette méthode membre, la fonction membre précédente setName() est appelée via le mot-clé this. Le résultat de l'exécution du programme est le suivant :

setName: Yida
setName: Jenny
thisTest: Jenny

Appelez le constructeur

<.>Construction Une méthode est automatiquement appelée lorsqu'un objet d'une classe est créé via le mot-clé new. Elle ne peut pas être appelée via le nom de la méthode (c'est-à-dire le nom de la classe) comme les autres méthodes du programme. Mais si une classe a plusieurs constructeurs, vous pouvez appeler d'autres constructeurs via ceci (paras...) dans un seul constructeur.

L'utilisation de ceci pour appeler d'autres constructeurs a les contraintes suivantes :

Vous ne pouvez appeler d'autres constructeurs que via cela dans le constructeur, et ne pouvez pas être utilisé dans les méthodes ordinaires.

Les constructeurs ne peuvent pas être appelés de manière récursive via cela, c'est-à-dire que le constructeur lui-même ne peut pas être appelé directement ou indirectement via cela dans un constructeur.

Appeler d'autres constructeurs via cela doit être exécuté dans la première ligne du constructeur.

Puisque super appelle, le constructeur de la classe parent doit également être exécuté dans la première ligne du constructeur, donc appeler le constructeur via ceci et super ne peut pas apparaître dans le même constructeur en même temps. Vous ne pouvez pas appeler plusieurs constructeurs différents dans un seul constructeur.

Le code suivant est erroné car un appel récursif est formé via le mot-clé this :

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

L'utilisation correcte est la suivante :

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

Renvoie la valeur de l'objet

En plus de référencer des variables ou des méthodes membres, le mot-clé this a également un rôle important dans le renvoi d'une référence à la classe. Par exemple, dans le code, vous pouvez utiliser return this pour renvoyer une référence à une classe. À ce stade, le mot-clé this représente le nom de la classe. Si le code se trouve dans la classe d'étudiant ci-dessus, alors le code représente l'étudiant de retour. On peut voir qu'en plus de référencer des variables ou des méthodes membres, le mot-clé this peut également être utilisé comme valeur de retour de la classe. C'est la partie la plus accrocheuse du mot-clé this.

Recommandations associées :

Démarrez avec Java

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn