java this keyword tutorial with code examples
Ce didacticiel explique en détail un mot-clé spécial «this» en Java avec des exemples de code simple. Il couvre comment, quand et où utiliser le mot-clé 'this':
Dans ce didacticiel, nous avons présenté l’un des concepts importants de Java: le mot-clé «this». Nous explorerons les détails du mot-clé «this» et présenterons également quelques exemples de son utilisation en Java.
Le mot-clé «ceci» en Java est une variable de référence. La variable de référence «this» pointe vers l'objet courant dans le programme Java . Par conséquent, si vous souhaitez accéder à un membre ou à une fonction de l’objet actuel, vous pouvez le faire en utilisant la référence «this».
Ce que vous apprendrez:
- Introduction à Java «this»
- Quand utiliser «this» en Java?
- Accéder à la variable d’instance à l’aide de «this»
- «This» passé comme paramètre de méthode
- Invoquer la méthode de classe actuelle avec 'this'
- Revenir avec «ceci»
- Utilisation de «this» pour appeler le constructeur de classe actuel
- Utiliser «ceci» comme argument du constructeur
- Questions fréquemment posées
- Conclusion
Introduction à Java «this»
La référence «ceci» est généralement appelée «ce pointeur» car elle pointe vers l’objet actuel. Le «ce pointeur» est utile lorsqu'il y a un nom pour les attributs et paramètres de classe. Lorsqu'une telle situation se présente, le «ce pointeur» élimine la confusion car nous pouvons accéder aux paramètres en utilisant le pointeur «ce».
Dans ce didacticiel, nous discuterons de l’utilisation du pointeur «this» dans diverses situations avec des exemples.
Quand utiliser «this» en Java?
En Java, le terme «ceci» a les utilisations suivantes:
- La référence «this» est utilisée pour accéder à la variable d'instance de classe.
- Vous pouvez même passer «this» comme argument dans l’appel de méthode.
- «This» peut également être utilisé pour invoquer implicitement la méthode de classe actuelle.
- Si vous souhaitez renvoyer l’objet actuel à partir de la méthode, utilisez «this».
- Si vous souhaitez appeler le constructeur de classe actuel, «this» peut être utilisé.
- Le constructeur peut également avoir «this» comme argument.
Examinons maintenant chacune de ces utilisations séparément.
Accéder à la variable d’instance à l’aide de «this»
Les variables d'instance des paramètres de classe et de méthode peuvent avoir le même nom. «Ce» pointeur peut être utilisé pour lever l’ambiguïté qui en découle.
Le programme Java ci-dessous montre comment «this» peut être utilisé pour accéder aux variables d'instance.
class this_Test { int val1; int val2; // Parameterized constructor this_Test(int val1, int val2) { this.val1 = val1 + val1; this.val2 = val2 + val2; } void display() { System.out.println('Value val1 = ' + val1 + ' Value val2 = ' + val2); } } class Main{ public static void main(String() args) { this_Test object = new this_Test(5,10); object.display(); } }
Production:
Dans le programme ci-dessus, vous pouvez voir que les variables d'instance et les paramètres de méthode partagent les mêmes noms. Nous utilisons le pointeur «this» avec des variables d'instance pour différencier les variables d'instance et les paramètres de méthode.
«This» passé comme paramètre de méthode
Vous pouvez également transmettre ce pointeur en tant que paramètre de méthode. La transmission de ce pointeur en tant que paramètre de méthode est généralement requise lorsque vous traitez des événements. Par exemple, supposons que vous vouliez déclencher un événement sur l'objet / la poignée en cours, alors vous devez le déclencher en utilisant ce pointeur.
Vous trouverez ci-dessous une exposition de programmation dans laquelle nous avons transmis ce pointeur à la méthode.
class Test_method { int val1; int val2; Test_method() { val1 = 10; val2 = 20; } void printVal(Test_method obj) { System.out.println('val1 = ' + obj.val1 + ' val2 = ' + obj.val2); } void get() { printVal(this); } } class Main{ public static void main(String() args) { Test_method object = new Test_method(); object.get(); } }
Production:
Dans ce programme, nous créons un objet de la classe Test_method dans la fonction principale puis appelons la méthode get () avec cet objet. Dans la méthode get (), le pointeur ‘this’ est passé à la méthode printVal () qui affiche les variables d’instance actuelles.
Invoquer la méthode de classe actuelle avec 'this'
Tout comme vous pouvez passer le pointeur «this» à la méthode, vous pouvez également utiliser ce pointeur pour appeler une méthode. Si vous oubliez d'inclure ce pointeur lors de l'appel de la méthode de la classe actuelle, le compilateur l'ajoute pour vous.
Un exemple d’appel de la méthode de classe avec ‘this’ est donné ci-dessous.
class Test_this { void print() { // calling fuctionshow() this.show(); System.out.println('Test_this:: print'); } void show() { System.out.println('Test_this::show'); } } class Main{ public static void main(String args()) { Test_this t1 = new Test_this(); t1.print(); } }
Production:
Dans ce programme, la méthode de classe print () appelle la méthode show () en utilisant ce pointeur lorsqu'elle est appelée par l'objet de classe dans la fonction principale.
Revenir avec «ceci»
Si le type de retour de la méthode est l’objet de la classe actuelle, vous pouvez renvoyer facilement le pointeur «this». En d’autres termes, vous pouvez renvoyer l’objet actuel à partir d’une méthode à l’aide du pointeur «this».
Vous trouverez ci-dessous l’implémentation du renvoi d’un objet à l’aide du pointeur «this».
téléchargement gratuit du logiciel de suivi d'adresse IP
class Test_this { int val_a; int val_b; //Default constructor Test_this() { val_a = 10; val_b = 20; } Test_this get() { return this; } void display() { System.out.println('val_a = ' + val_a + ' val_b = ' + val_b); } } class Main{ public static void main(String() args) { Test_this object = new Test_this(); object.get().display(); } }
Production:
Le programme ci-dessus montre la méthode get () qui renvoie ce qui est un objet de la classe Test_this. En utilisant l'objet courant retourné par la méthode get (), l'affichage de la méthode est à son tour appelé.
Utilisation de «this» pour appeler le constructeur de classe actuel
Vous pouvez également utiliser le pointeur ‘this’ pour appeler le constructeur du fichier cla.ss. L'idée de base est de réutiliser le constructeur. Encore une fois, si vous avez plus d'un constructeur dans votre classe, vous pouvez appeler ces constructeurs les uns des autres, ce qui entraîne un chaînage de constructeurs.
Considérez le programme Java suivant.
class This_construct { int val1; int val2; //Default constructor This_construct() { this(10, 20); System.out.println('Default constructor
'); } //Parameterized constructor This_construct(int val1, int val2) { this.val1 = val1; this.val2 = val2; System.out.println('Parameterized constructor'); } } class Main{ public static void main(String() args) { This_construct object = new This_construct(); } }
Production:
Dans le programme ci-dessus, nous avons deux constructeurs dans la classe. Nous appelons l’autre constructeur en utilisant le pointeur ‘this’, à partir du constructeur par défaut de la classe.
Utiliser «ceci» comme argument du constructeur
Vous pouvez également passer le pointeur «this» comme argument à un constructeur. Cela est plus utile lorsque vous avez plusieurs classes, comme indiqué dans l'implémentation suivante.
class Static_A { Static_B obj; Static_A(Static_B obj) { this.obj = obj; obj.display(); } } class Static_B { int x = 10; Static_B() { Static_A obj = new Static_A(this); } void display() { System.out.println('B::x = ' + x); } } class Main{ public static void main(String() args) { Static_B obj = new Static_B(); } }
Production:
Comme indiqué dans l'implémentation ci-dessus, nous avons deux classes et chaque constructeur de classe appelle le constructeur de l'autre classe. «Ce» pointeur est utilisé à cette fin.
Questions fréquemment posées
Q # 1) Quelle est la différence entre this et this () en Java?
Répondre: En Java, cela fait référence à l'objet actuel tandis que this () fait référence au constructeur avec des paramètres correspondants. Le mot-clé 'ceci' ne fonctionne qu'avec les objets. L’appel «this ()» est utilisé pour appeler plusieurs constructeurs de la même classe.
Q # 2) Ce mot clé est-il nécessaire en Java?
Répondre: Cela est particulièrement nécessaire lorsque vous devez passer l'objet courant d'une méthode à une autre, ou entre les constructeurs ou simplement utiliser l'objet courant pour d'autres opérations.
Q # 3) Quelle est la différence entre this () et super () en Java?
Répondre: This () et super () sont des mots-clés en Java. Alors que this () représente le constructeur de l'objet actuel avec les paramètres correspondants, super () représente le constructeur de la classe parent.
Q # 4) Pouvez-vous utiliser à la fois this () et super () dans un constructeur?
Répondre: Oui, tu peux l'utiliser. Le constructeur this () pointera vers le constructeur actuel tandis que super () pointera vers le constructeur de la classe parent. N'oubliez pas que this () et super () doivent être la première instruction.
Conclusion
Le mot-clé «this» fait référence à l’objet actuel dans le programme Java. Il peut être utilisé pour éviter toute confusion résultant des mêmes noms pour les variables de classe (variables d'instance) et les paramètres de méthode.
Vous pouvez utiliser le pointeur 'this' de plusieurs manières, comme accéder aux variables d'instance, passer des arguments à la méthode ou au constructeur, renvoyer l'objet, etc. Le pointeur 'this' est un mot clé important en Java et est une fonctionnalité utile pour accéder à l'objet courant et ses membres et ses fonctions.
Nous espérons que vous avez suivi l’utilisation du mot-clé «this» en Java à partir de ce didacticiel.
lecture recommandée
- Tutoriel JAVA pour les débutants: plus de 100 tutoriels vidéo Java pratiques
- Tutoriel de réflexion Java avec des exemples
- Tutoriel sur la gestion des exceptions C # avec des exemples de code
- Tutoriel Python DateTime avec des exemples
- Tutoriel sur les fonctions / méthodes C # avec des exemples de code
- Tutoriel Java SWING: Conteneur, composants et gestion des événements
- Tutoriel Java Collections Framework (JCF)
- Tutoriel sur l'interface Java et les classes abstraites avec des exemples