logo

'cette' référence en Java

En Java, « this » est une variable de référence qui fait référence à l'objet actuel, ou on peut dire que ceci en Java est un mot-clé qui fait référence à l'instance d'objet actuelle. Il peut être utilisé pour appeler des méthodes et des champs de classe actuelle, pour transmettre une instance de la classe actuelle en tant que paramètre et pour différencier les variables locales et d'instance. L'utilisation de cette référence peut améliorer la lisibilité du code et réduire les conflits de noms.

Javacette référenceExemple

En Java, il s'agit d'une variable de référence qui fait référence à l'objet actuel sur lequel la méthode ou le constructeur est invoqué. Il peut être utilisé pour accéder aux variables d'instance et aux méthodes de l'objet actuel.



Ci-dessous la mise en œuvre de cette référence :

Java




javascript pour la liste déroulante





// Java Program to implement> // Java this reference> // Driver Class> public> class> Person {> >// Fields Declared> >String name;> >int> age;> >// Constructor> >Person(String name,>int> age)> >{> >this>.name = name;> >this>.age = age;> >}> >// Getter for name> >public> String get_name() {>return> name; }> >// Setter for name> >public> void> change_name(String name)> >{> >this>.name = name;> >}> >// Method to Print the Details of> >// the person> >public> void> printDetails()> >{> >System.out.println(>'Name: '> +>this>.name);> >System.out.println(>'Age: '> +>this>.age);> >System.out.println();> >}> >// main function> >public> static> void> main(String[] args)> >{> >// Objects Declared> >Person first =>new> Person(>'ABC'>,>18>);> >Person second =>new> Person(>'XYZ'>,>22>);> >first.printDetails();> >second.printDetails();> >first.change_name(>'PQR'>);> >System.out.println(>'Name has been changed to: '> >+ first.get_name());> >}> }>

>

>

Sortir

Name: ABC Age: 18 Name: XYZ Age: 22 Name has been changed to: PQR>

Explication

Dans le code ci-dessus, nous avons défini une classe Person avec deux champs privés nom et âge. Nous avons défini le constructeur de la classe Person pour initialiser ces champs à l'aide de ce mot-clé. Nous avons également défini des méthodes getter et setter pour ces champs qui utilisent ce mot-clé pour faire référence à l'instance d'objet actuelle.

Dans la méthode printDetails(), nous avons utilisé ce mot-clé pour faire référence à l'instance d'objet actuelle et imprimer son nom, son âge et sa référence d'objet.

Dans la classe Main, nous avons créé deux objets Person et appelé la méthode printDetails() sur chaque objet. La sortie affiche le nom, l'âge et la référence d'objet de chaque instance d'objet.

Méthodes pour utiliser « ceci » en Java

Voici les façons d’utiliser le mot-clé « this » en Java mentionnées ci-dessous :

  • Utilisation du mot-clé « this » pour faire référence aux variables d'instance de classe actuelles.
  • Utiliser this() pour appeler le constructeur de classe actuel
  • Utilisation du mot-clé 'this' pour renvoyer l'instance de classe actuelle
  • Utilisation du mot-clé 'this' comme paramètre de méthode
  • Utilisation du mot-clé 'this' pour appeler la méthode de classe actuelle
  • Utiliser le mot-clé 'this' comme argument dans l'appel du constructeur

1. Utiliser le mot-clé « this » pour faire référence aux variables d'instance de classe actuelles

Java




// Java code for using 'this' keyword to> // refer current class instance variables> class> Test {> >int> a;> >int> b;> >// Parameterized constructor> >Test(>int> a,>int> b)> >{> >this>.a = a;> >this>.b = b;> >}> >void> display()> >{> >// Displaying value of variables a and b> >System.out.println(>'a = '> + a +>' b = '> + b);> >}> >public> static> void> main(String[] args)> >{> >Test object =>new> Test(>10>,>20>);> >object.display();> >}> }>

>

aligner l'image CSS
>

Sortir

a = 10 b = 20>

2. Utiliser this() pour appeler le constructeur de classe actuel

Java




// Java code for using this() to> // invoke current class constructor> class> Test {> >int> a;> >int> b;> >// Default constructor> >Test()> >{> >this>(>10>,>20>);> >System.out.println(> >'Inside default constructor '>);> >}> >// Parameterized constructor> >Test(>int> a,>int> b)> >{> >this>.a = a;> >this>.b = b;> >System.out.println(> >'Inside parameterized constructor'>);> >}> >public> static> void> main(String[] args)> >{> >Test object =>new> Test();> >}> }>

>

>

Sortir

Inside parameterized constructor Inside default constructor>

3. Utilisation du mot-clé 'this' pour renvoyer l'instance de classe actuelle

Java




// Java code for using 'this' keyword> // to return the current class instance> class> Test {> >int> a;> >int> b;> >// Default constructor> >Test()> >{> >a =>10>;> >b =>20>;> >}> >// Method that returns current class instance> >Test get() {>return> this>; }> >// Displaying value of variables a and b> >void> display()> >{> >System.out.println(>'a = '> + a +>' b = '> + b);> >}> >public> static> void> main(String[] args)> >{> >Test object =>new> Test();> >object.get().display();> >}> }>

>

>

types de données en Java
Sortir

a = 10 b = 20>

4. Utiliser le mot-clé « this » comme paramètre de méthode

Java




// Java code for using 'this'> // keyword as method parameter> class> Test {> >int> a;> >int> b;> >// Default constructor> >Test()> >{> >a =>10>;> >b =>20>;> >}> >// Method that receives 'this' keyword as parameter> >void> display(Test obj)> >{> >System.out.println(>'a = '> + obj.a> >+>' b = '> + obj.b);> >}> >// Method that returns current class instance> >void> get() { display(>this>); }> >// main function> >public> static> void> main(String[] args)> >{> >Test object =>new> Test();> >object.get();> >}> }>

traitement parallèle

>

>

Sortir

a = 10 b = 20>

5. Utilisation du mot-clé « this » pour appeler la méthode de classe actuelle

Java




// Java code for using this to invoke current> // class method> class> Test {> >void> display()> >{> >// calling function show()> >this>.show();> >System.out.println(>'Inside display function'>);> >}> >void> show()> >{> >System.out.println(>'Inside show function'>);> >}> >public> static> void> main(String args[])> >{> >Test t1 =>new> Test();> >t1.display();> >}> }>

>

>

Sortir

Inside show function Inside display function>

6. Utiliser le mot-clé 'this' comme argument dans l'appel du constructeur

Java




comment déréférencer un pointeur en c

// Java code for using this as an argument in constructor> // call> // Class with object of Class B as its data member> class> A {> >B obj;> >// Parameterized constructor with object of B> >// as a parameter> >A(B obj)> >{> >this>.obj = obj;> >// calling display method of class B> >obj.display();> >}> }> class> B {> >int> x =>5>;> >// Default Constructor that create an object of A> >// with passing this as an argument in the> >// constructor> >B() { A obj =>new> A(>this>); }> >// method to show value of x> >void> display()> >{> >System.out.println(>'Value of x in Class B : '> + x);> >}> >public> static> void> main(String[] args)> >{> >B obj =>new> B();> >}> }>

>

>

Sortir

Value of x in Class B : 5>

Avantages de l’utilisation de « cette » référence

Il y a certains avantages à utiliser « cette » référence en Java, comme mentionné ci-dessous :

  1. Cela permet de faire la distinction entre les variables d'instance et les variables locales portant le même nom.
  2. Il peut être utilisé pour passer l'objet actuel comme argument à une autre méthode.
  3. Il peut être utilisé pour renvoyer l'objet actuel à partir d'une méthode.
  4. Il peut être utilisé pour appeler un constructeur à partir d'un autre constructeur surchargé de la même classe.

Inconvénients de l’utilisation de « cette » référence

Bien que « cette » référence présente de nombreux avantages, elle présente également certains inconvénients :

  1. Une utilisation excessive peut rendre le code plus difficile à lire et à comprendre.
  2. L’utiliser inutilement peut ajouter une surcharge inutile au programme.
  3. Son utilisation dans un contexte statique entraîne une erreur de compilation.
  4. Dans l'ensemble, ce mot-clé est un outil utile pour travailler avec des objets en Java, mais il doit être utilisé judicieusement et uniquement lorsque cela est nécessaire.

Cet article est rédigé par Mehek Narang et Amit Kumar .