logo

ce mot-clé en Java

Il peut y avoir beaucoup d'utilisation de Java ce mot-clé . En Java, c'est un variable de référence qui fait référence à l'objet actuel.

java ce mot-clé

Utilisation de Java ce mot-clé

Voici les 6 utilisations de Java pour ce mot-clé.

  1. cela peut être utilisé pour faire référence à la variable d'instance de classe actuelle.
  2. cela peut être utilisé pour invoquer la méthode de classe actuelle (implicitement)
  3. this() peut être utilisé pour appeler le constructeur de classe actuel.
  4. cela peut être passé comme argument dans l’appel de méthode.
  5. cela peut être passé comme argument dans l'appel du constructeur.
  6. cela peut être utilisé pour renvoyer l'instance de classe actuelle à partir de la méthode.

Suggestion: Si vous débutez en Java, recherchez uniquement trois utilisations de ce mot-clé.

Utilisation de Java ce mot-clé

1) ceci : pour faire référence à la variable d'instance de classe actuelle

Le mot-clé this peut être utilisé pour faire référence à la variable d'instance de classe actuelle. S'il existe une ambiguïté entre les variables d'instance et les paramètres, ce mot-clé résout le problème d'ambiguïté.

Comprendre le problème sans ce mot-clé

Comprenons le problème si nous n'utilisons pas ce mot-clé par l'exemple donné ci-dessous :

le meilleur sourire du monde
 class Student{ int rollno; String name; float fee; Student(int rollno,String name,float fee){ rollno=rollno; name=name; fee=fee; } void display(){System.out.println(rollno+' '+name+' '+fee);} } class TestThis1{ public static void main(String args[]){ Student s1=new Student(111,'ankit',5000f); Student s2=new Student(112,'sumit',6000f); s1.display(); s2.display(); }} 
Testez-le maintenant

Sortir:

 0 null 0.0 0 null 0.0 

Dans l'exemple ci-dessus, les paramètres (arguments formels) et les variables d'instance sont identiques. Nous utilisons donc ce mot-clé pour distinguer la variable locale et la variable d'instance.

Solution du problème ci-dessus par ce mot-clé

 class Student{ int rollno; String name; float fee; Student(int rollno,String name,float fee){ this.rollno=rollno; this.name=name; this.fee=fee; } void display(){System.out.println(rollno+' '+name+' '+fee);} } class TestThis2{ public static void main(String args[]){ Student s1=new Student(111,'ankit',5000f); Student s2=new Student(112,'sumit',6000f); s1.display(); s2.display(); }} 
Testez-le maintenant

Sortir:

 111 ankit 5000.0 112 sumit 6000.0 

Si les variables locales (arguments formels) et les variables d'instance sont différentes, il n'est pas nécessaire d'utiliser ce mot-clé comme dans le programme suivant :

Programme où ce mot-clé n'est pas requis

 class Student{ int rollno; String name; float fee; Student(int r,String n,float f){ rollno=r; name=n; fee=f; } void display(){System.out.println(rollno+' '+name+' '+fee);} } class TestThis3{ public static void main(String args[]){ Student s1=new Student(111,'ankit',5000f); Student s2=new Student(112,'sumit',6000f); s1.display(); s2.display(); }} 
Testez-le maintenant

Sortir:

 111 ankit 5000.0 112 sumit 6000.0 

Il est préférable d'utiliser des noms significatifs pour les variables. Nous utilisons donc le même nom pour les variables d'instance et les paramètres en temps réel, et utilisons toujours ce mot-clé.


2) ceci : pour invoquer la méthode de classe actuelle

Vous pouvez appeler la méthode de la classe actuelle en utilisant le mot-clé this. Si vous n'utilisez pas le mot-clé this, le compilateur ajoute automatiquement ce mot-clé lors de l'appel de la méthode. Voyons l'exemple

 class A{ void m(){System.out.println('hello m');} void n(){ System.out.println('hello n'); //m();//same as this.m() this.m(); } } class TestThis4{ public static void main(String args[]){ A a=new A(); a.n(); }} 
Testez-le maintenant

Sortir:

réseaux informatiques
 hello n hello m 

3) this() : pour invoquer le constructeur de classe actuel

L'appel au constructeur this() peut être utilisé pour appeler le constructeur de classe actuel. Il permet de réutiliser le constructeur. En d’autres termes, il est utilisé pour le chaînage des constructeurs.

Appel du constructeur par défaut à partir du constructeur paramétré :

 class A{ A(){System.out.println('hello a');} A(int x){ this(); System.out.println(x); } } class TestThis5{ public static void main(String args[]){ A a=new A(10); }} 
Testez-le maintenant

Sortir:

 hello a 10 

Appel du constructeur paramétré à partir du constructeur par défaut :

aussi modèle
 class A{ A(){ this(5); System.out.println('hello a'); } A(int x){ System.out.println(x); } } class TestThis6{ public static void main(String args[]){ A a=new A(); }} 
Testez-le maintenant

Sortir:

 5 hello a 

Utilisation réelle de l'appel du constructeur this()

L'appel au constructeur this() doit être utilisé pour réutiliser le constructeur du constructeur. Il maintient la chaîne entre les constructeurs, c'est-à-dire qu'il est utilisé pour le chaînage des constructeurs. Voyons l'exemple ci-dessous qui montre l'utilisation réelle de ce mot-clé.

 class Student{ int rollno; String name,course; float fee; Student(int rollno,String name,String course){ this.rollno=rollno; this.name=name; this.course=course; } Student(int rollno,String name,String course,float fee){ this(rollno,name,course);//reusing constructor this.fee=fee; } void display(){System.out.println(rollno+' '+name+' '+course+' '+fee);} } class TestThis7{ public static void main(String args[]){ Student s1=new Student(111,'ankit','java'); Student s2=new Student(112,'sumit','java',6000f); s1.display(); s2.display(); }} 
Testez-le maintenant

Sortir:

 111 ankit java 0.0 112 sumit java 6000.0 

Règle : l'appel à this() doit être la première instruction du constructeur.

 class Student{ int rollno; String name,course; float fee; Student(int rollno,String name,String course){ this.rollno=rollno; this.name=name; this.course=course; } Student(int rollno,String name,String course,float fee){ this.fee=fee; this(rollno,name,course);//C.T.Error } void display(){System.out.println(rollno+' '+name+' '+course+' '+fee);} } class TestThis8{ public static void main(String args[]){ Student s1=new Student(111,'ankit','java'); Student s2=new Student(112,'sumit','java',6000f); s1.display(); s2.display(); }} 
Testez-le maintenant

Sortir:

 Compile Time Error: Call to this must be first statement in constructor 

4) ceci : à passer en argument dans la méthode

Le mot clé this peut également être passé en argument dans la méthode. Il est principalement utilisé dans la gestion des événements. Voyons l'exemple :

 class S2{ void m(S2 obj){ System.out.println('method is invoked'); } void p(){ m(this); } public static void main(String args[]){ S2 s1 = new S2(); s1.p(); } } 
Testez-le maintenant

Sortir:

 method is invoked 

Application de ceci qui peut être passé en argument :

Dans la gestion d'événements (ou) dans une situation où nous devons fournir une référence d'une classe à une autre. Il est utilisé pour réutiliser un objet dans plusieurs méthodes.


5) this : à passer en argument dans l'appel du constructeur

Nous pouvons également transmettre le mot-clé this dans le constructeur. C'est utile si nous devons utiliser un objet dans plusieurs classes. Voyons l'exemple :

taille du texte en latex
 class B{ A4 obj; B(A4 obj){ this.obj=obj; } void display(){ System.out.println(obj.data);//using data member of A4 class } } class A4{ int data=10; A4(){ B b=new B(this); b.display(); } public static void main(String args[]){ A4 a=new A4(); } } 
Testez-le maintenant
 Output:10 

6) ce mot-clé peut être utilisé pour renvoyer l'instance de classe actuelle

Nous pouvons renvoyer ce mot-clé sous forme d'instruction de la méthode. Dans ce cas, le type de retour de la méthode doit être le type de classe (non primitif). Voyons l'exemple :

Syntaxe de this qui peut être renvoyée sous forme d'instruction

 return_type method_name(){ return this; } 

Exemple de ce mot-clé que vous renvoyez sous forme d'instruction de la méthode

 class A{ A getA(){ return this; } void msg(){System.out.println('Hello java');} } class Test1{ public static void main(String args[]){ new A().getA().msg(); } } 
Testez-le maintenant

Sortir:

 Hello java 

Prouver ce mot-clé

Montrons que ce mot-clé fait référence à la variable d'instance de classe actuelle. Dans ce programme, nous imprimons la variable de référence et ce, la sortie des deux variables est la même.

 class A5{ void m(){ System.out.println(this);//prints same reference ID } public static void main(String args[]){ A5 obj=new A5(); System.out.println(obj);//prints the reference ID obj.m(); } } 
Testez-le maintenant

Sortir:

 A5@22b3ea59 A5@22b3ea59