Vejledning til dette Java-nøgleord

1. Introduktion

I denne vejledning vi kigger på det her Java-nøgleord.

I Java, det her nøgleord er en henvisning til det aktuelle objekt, hvis metode kaldes.

Lad os undersøge, hvordan og hvornår vi kan bruge nøgleordet.

2. Tvetydig feltskygge

Nøgleordet er nyttigt til at tydeliggøre instansvariabler fra lokale parametre. Den mest almindelige årsag er, når vi har konstruktorparametre med samme navn som instansfelter:

offentlig klasse KeywordTest {privat strengnavn; privat int alder public KeywordTest (String name, int age) {this.name = name; this.age = alder; }}

Som vi kan se her, bruger vi det her med navn og alder forekomstfelter - for at skelne dem fra parametre.

En anden brug er at bruge det her med parameteren, der gemmer sig eller skygger i det lokale omfang. Et eksempel på anvendelse kan findes i artiklen Variabel og metode skjult.

3. Henvisning til konstruktører af samme klasse

Fra en konstruktør kan vi bruge det her() at kalde en anden konstruktør i samme klasse. Her bruger vi det her() til konstruktorkæden for at reducere kodeforbruget.

Den mest almindelige brugssag er at kalde en standardkonstruktør fra den parametriserede konstruktør:

public KeywordTest (String name, int age) {this (); // resten af ​​koden}

Eller vi kan kalde den parametrerede konstruktør fra konstruktøren uden argument og videregive nogle argumenter:

offentlig KeywordTest () {denne ("John", 27); }

Noter det det her() skal være den første sætning i konstruktøren, ellers vil kompileringsfejlen opstå.

4. Aflevering det her som en parameter

Her har vi det printInstance () metode, hvor dette nøgleord argument er defineret:

offentlig KeywordTest () {printInstance (dette); } public void printInstance (KeywordTest thisKeyword) {System.out.println (thisKeyword); }

Inde i konstruktøren påberåber vi os printInstance () metode. Med det her, vi sender en henvisning til den aktuelle forekomst.

5. Vender tilbage det her

Vi kan også bruge det her nøgleord for at returnere den aktuelle klasseinstans fra metoden.

For ikke at duplikere koden er her et komplet praktisk eksempel på, hvordan den implementeres i builder-designmønsteret.

6. Den det her Nøgleord inden for den indre klasse

Vi bruger også det her for at få adgang til den ydre klasseinstans fra den indre klasse:

offentlig klasse KeywordTest {privat strengnavn; class ThisInnerClass {boolean isInnerClass = true; offentlig ThisInnerClass () {KeywordTest thisKeyword = KeywordTest.this; String outerString = KeywordTest.this.name; }}}

Her inde i konstruktøren kan vi få en henvisning til KeywordTest eksempel med KeywordTest. Dette opkald. Vi kan gå endnu dybere og få adgang til instansvariablerne som KeywordTest.this.name Mark.

7. Konklusion

I denne artikel undersøgte vi det her nøgleord i Java.

Som sædvanlig er den komplette kode tilgængelig på Github.