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; } }
2. Passer l'instance de classe actuelle en tant qu'argument
Lors de l'appel de méthodes sur d'autres objets, 'this' vous permet de transmettre l'instance de classe actuelle en tant qu'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(); } }
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 } }
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3