logo

‘deze’ verwijzing in Java

In Java is 'dit' een referentievariabele die verwijst naar het huidige object, of kan worden gezegd dat dit in Java een trefwoord is dat verwijst naar de huidige objectinstantie. Het kan worden gebruikt om huidige klassenmethoden en -velden aan te roepen, om een ​​instantie van de huidige klasse als parameter door te geven en om onderscheid te maken tussen de lokale en instantievariabelen. Het gebruik van deze verwijzing kan de leesbaarheid van de code verbeteren en naamgevingsconflicten verminderen.

Java dit referentievoorbeeld

In Java is dit een referentievariabele die verwijst naar het huidige object waarop de methode of constructor wordt aangeroepen. Het kan worden gebruikt om toegang te krijgen tot instantievariabelen en methoden van het huidige object.



Hieronder vindt u de implementatie van deze referentie:

Java




hoeveel miljoenen zitten er in een miljard





// 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());> >}> }>

>

>

Uitvoer

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

Uitleg

In de bovenstaande code hebben we een Person-klasse gedefinieerd met twee privévelden, naam en leeftijd. We hebben de klasseconstructor Person gedefinieerd om deze velden te initialiseren met dit trefwoord. We hebben ook getter- en settermethoden voor deze velden gedefinieerd, die dit trefwoord gebruiken om naar de huidige objectinstantie te verwijzen.

In de methode printDetails() hebben we dit trefwoord gebruikt om naar de huidige objectinstantie te verwijzen en de naam, leeftijd en objectreferentie ervan af te drukken.

In de klasse Main hebben we twee Person-objecten gemaakt en voor elk object de methode printDetails() aangeroepen. De uitvoer toont de naam, leeftijd en objectreferentie van elke objectinstantie.

Methoden om ‘dit’ in Java te gebruiken

Hieronder volgen de manieren om het trefwoord ‘dit’ in Java te gebruiken:

  • Het trefwoord ‘this’ gebruiken om naar huidige klasse-instantievariabelen te verwijzen.
  • Gebruik this() om de huidige klassenconstructor aan te roepen
  • Gebruik het trefwoord ‘this’ om de huidige klasse-instantie te retourneren
  • Gebruik het trefwoord ‘dit’ als methodeparameter
  • Het trefwoord ‘dit’ gebruiken om de huidige klassenmethode aan te roepen
  • Gebruik het trefwoord ‘dit’ als argument in de constructoraanroep

1. Het trefwoord ‘dit’ gebruiken om naar huidige klasse-instantievariabelen te verwijzen

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();> >}> }>

c programmareeksarray

>

>

Uitvoer

a = 10 b = 20>

2. Gebruik this() om de huidige klassenconstructor aan te roepen

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();> >}> }>

>

>

Uitvoer

arrays retourneren in Java
Inside parameterized constructor Inside default constructor>

3. Gebruik het trefwoord ‘dit’ om de huidige klasse-instantie te retourneren

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();> >}> }>

>

>

Uitvoer

a = 10 b = 20>

4. Het trefwoord ‘dit’ gebruiken als methodeparameter

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();> >}> }>

>

>

alfabet nummer
Uitvoer

a = 10 b = 20>

5. Gebruik het trefwoord ‘dit’ om de huidige klassenmethode aan te roepen

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();> >}> }>

>

>

Uitvoer

Inside show function Inside display function>

6. Gebruik het trefwoord ‘dit’ als argument in de constructoraanroep

Java

wat is mijnruimte




// 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();> >}> }>

>

>

Uitvoer

Value of x in Class B : 5>

Voordelen van het gebruik van ‘deze’ referentie

Er zijn bepaalde voordelen van het gebruik van ‘deze’ referentie in Java, zoals hieronder vermeld:

  1. Het helpt om onderscheid te maken tussen instantievariabelen en lokale variabelen met dezelfde naam.
  2. Het kan worden gebruikt om het huidige object als argument door te geven aan een andere methode.
  3. Het kan worden gebruikt om het huidige object uit een methode te retourneren.
  4. Het kan worden gebruikt om een ​​constructor aan te roepen vanuit een andere overbelaste constructor in dezelfde klasse.

Nadelen van het gebruik van ‘deze’ referentie

Hoewel ‘deze’ verwijzing veel voordelen met zich meebrengt, zijn er ook bepaalde nadelen:

  1. Overmatig gebruik hiervan kan ervoor zorgen dat de code moeilijker te lezen en te begrijpen is.
  2. Als u dit onnodig gebruikt, kan er onnodige overhead aan het programma worden toegevoegd.
  3. Als u dit in een statische context gebruikt, ontstaat er een compileerfout.
  4. Over het geheel genomen is dit trefwoord een handig hulpmiddel bij het werken met objecten in Java, maar het moet verstandig worden gebruikt en alleen wanneer dat nodig is.

Dit artikel is bijgedragen door Mehak Narang En Amit Kumar .