Maison > Java > javaDidacticiel > Quand et pourquoi avez-vous besoin du mot-clé « this » dans les classes Java ?

Quand et pourquoi avez-vous besoin du mot-clé « this » dans les classes Java ?

DDD
Libérer: 2025-01-03 18:35:40
original
676 Les gens l'ont consulté

When and Why Do You Need the

Comprendre l'utilisation de « this » dans les classes Java

Bien que « this » puisse principalement faire référence à l'objet actuel, son utilisation spécifique et la nécessité peut prêter à confusion. Voici une liste des scénarios dans lesquels « ceci » est indispensable :

1. Lever l'ambiguïté des références de variables dans les setters

Les méthodes Setter utilisent souvent « this » pour faire la distinction entre les paramètres et les variables membres privées qui partagent le même nom. En utilisant 'this.x', le code attribue automatiquement la valeur du paramètre 'x' à la variable d'instance 'x', évitant toute ambiguïté.

Exemple :

public class Foo {
    private String name;

    public void setName(String name) {
        this.name = name;
    }
}
Copier après la connexion

2. Passer l'instance de classe actuelle comme argument

Lors de l'appel de méthodes sur d'autres objets, 'this' vous permet de transmettre l'instance de classe actuelle comme argument. Cela permet à la méthode appelée d'accéder et d'interagir avec l'objet actuel.

Exemple :

public class Foo {
    public String useBarMethod() {
        Bar theBar = new Bar();
        return theBar.barMethod(this);
    }

    public String getName() {
        return "Foo";
    }
}

public class Bar {
    public void barMethod(Foo obj) {
        obj.getName();
    }
}
Copier après la connexion

3. Invocation de constructeurs alternatifs

Au sein des constructeurs, « this » peut être utilisé pour appeler des constructeurs alternatifs de la même classe. Ceci est utile lorsque vous avez plusieurs constructeurs et que vous souhaitez initialiser l'objet avec des valeurs spécifiques.

Exemple :

class Foo {
    public Foo() {
        this("Some default value for bar");

        // Optional additional lines
    }

    public Foo(String bar) {
        // Do something with bar
    }
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal