Veiledning til dette Java-nøkkelordet

1. Introduksjon

I denne veiledningen, vi tar en titt på dette Java-nøkkelord.

I Java, dette nøkkelord er en referanse til det nåværende objektet som metoden kalles for.

La oss undersøke hvordan og når vi kan bruke nøkkelordet.

2. Disambiguating Field Shadowing

Nøkkelordet er nyttig for å tydeliggjøre forekomstvariabler fra lokale parametere. Den vanligste årsaken er når vi har konstruktorparametere med samme navn som forekomstfelt:

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

Som vi kan se her, bruker vi dette med Navn og alder forekomstfelt - for å skille dem fra parametere.

En annen bruk er å bruke dette med parameteren som gjemmer seg eller skygger i det lokale omfanget. Et eksempel på bruk finner du i artikkelen Variable and Method Hiding.

3. Henvisning til konstruktører av samme klasse

Fra en konstruktør kan vi bruke dette() å ringe en annen konstruktør i samme klasse. Her bruker vi dette() for konstruktorkjetting for å redusere kodebruk.

Den vanligste brukssaken er å ringe til en standardkonstruktør fra den parameteriserte konstruktøren:

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

Eller vi kan ringe den parameteriserte konstruktøren fra konstruktøren uten argument og sende noen argumenter:

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

Noter det dette() skal være den første setningen i konstruktøren, ellers vil kompileringsfeilen oppstå.

4. Passerende dette som en parameter

Her har vi printInstance () metode, der dette nøkkelordet argument er definert:

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

Inne i konstruktøren påberoper vi oss printInstance () metode. Med dette, gir vi en referanse til den nåværende forekomsten.

5. Tilbake dette

Vi kan også bruke dette nøkkelord for å returnere gjeldende klasseinstans fra metoden.

For ikke å duplisere koden, her er et fullstendig praktisk eksempel på hvordan den implementeres i byggmønsteret.

6. Den dette Søkeord innenfor den indre klassen

Vi bruker også dette for å få tilgang til den ytre klasseinstansen fra den indre klassen:

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

Her, inne i konstruktøren, kan vi få en referanse til KeywordTest eksempel med KeywordTest. Dette anrop. Vi kan gå enda dypere og få tilgang til forekomstvariablene som KeywordTest.this.name felt.

7. Konklusjon

I denne artikkelen undersøkte vi dette nøkkelord i Java.

Som vanlig er den komplette koden tilgjengelig på Github.