Dette nøkkelordet i Java: Hva er & Hvordan bruke med eksempel

Innholdsfortegnelse:

Anonim

Hva er dette nøkkelordet i Java?

dette nøkkelordet i Java er en referansevariabel som refererer til det nåværende objektet til en metode eller en konstruktør. Hovedformålet med å bruke dette nøkkelordet i Java er å fjerne forvirringen mellom klasseattributter og parametere som har samme navn.

Følgende er forskjellige bruksområder for 'dette' nøkkelordet i Java:

  • Den kan brukes til å henvise til forekomstvariabel av gjeldende klasse
  • Den kan brukes til å påkalle eller initiere nåværende klassekonstruktør
  • Det kan sendes som et argument i metodeanropet
  • Det kan sendes som argument i konstruktøranropet
  • Den kan brukes til å returnere gjeldende klasseinstans

Klikk her hvis videoen ikke er tilgjengelig

Forstå "dette" nøkkelordet med et eksempel.

Java dette nøkkelordet Eksempel
  1. Klasse : klasse Konto
  2. Instansvariabel : a og b
  3. Metodesettdata : For å sette verdien for a og b.
  4. Metode Vis data : For å vise verdiene for a og b.
  5. Hovedmetode: der vi lager et objekt for kontoklasse og anropsmetoder setter data og viser data.

La oss kompilere og kjøre koden

Vår forventede effekt for A og B skal initialiseres til henholdsvis verdiene 2 og 3.

Men verdien er 0, hvorfor? La oss undersøke det.

I metoden Sett data blir argumentene erklært som a og b, mens forekomstvariablene også blir kalt a og b.

Under utførelsen er kompilatoren forvirret. Om "a" på venstre side av den tildelte operatøren er forekomstvariabelen eller den lokale variabelen. Derfor setter den ikke verdien til 'a' når metodesettdataene blir kalt.

Løsningen er "dette" nøkkelordet

Legg til både 'a' og 'b' med Java dette nøkkelordet etterfulgt av en prikk (.) -Operator.

Under kodeutførelse når et objekt kaller metoden 'setdata'. Nøkkelordet "dette" erstattes av objektbehandleren "obj." (Se bildet nedenfor).

Så nå vet kompilatoren,

  • 'A' på venstre side er en instansvariabel.
  • Mens 'a' på høyre side er en lokal variabel

Variablene initialiseres riktig, og forventet produksjon vises.

Anta at du er smart nok til å velge forskjellige navn på forekomstvariabelen og metodeargumenter.

Men denne gangen oppretter du to objekter av klassen, hver kaller den angitte datametoden.

Hvordan kompilatoren vil avgjøre om den skal fungere på forekomstvariabelen til objekt 1 eller objekt 2.

Vel, kompilatoren legger implisitt til forekomstvariabelen med "dette" nøkkelordet (bildet nedenfor).

Slik at når objekt 1 ringer den angitte datametoden, blir en forekomstvariabel lagt til av dens referansevariabel.

Mens objekt 2 ringer den angitte datametoden, endres en forekomstvariabel av objekt 2.

Denne prosessen ivaretas av kompilatoren selv. Du trenger ikke å legge til dette søkeordet eksplisitt med mindre det er en eksepsjonell situasjon som i vårt eksempel.

Eksempel: For å lære bruk "dette" nøkkelordet

Trinn 1) Kopier følgende kode til et notisblokk.

class Account{int a;int b;public void setData(int a ,int b){a = a;b = b;}public void showData(){System.out.println("Value of A ="+a);System.out.println("Value of B ="+b);}public static void main(String args[]){Account obj = new Account();obj.setData(2,3);obj.showData();}}

Trinn 2) Lagre, kompiler og kjør koden.
Trinn 3) Verdien av a & b er vist som null? For å rette feilen, legg til linje 6 og 7 med " dette " nøkkelordet.

this.a =a;this.b =b;

Trinn 4) Lagre, kompiler og kjør koden. Denne gangen er verdiene til a & b satt til henholdsvis 2 og 3.

Sammendrag

  • dette nøkkelordet i Java er en referansevariabel som refererer til gjeldende objekt.
  • En av bruken av dette nøkkelordet i Java er å henvise til gjeldende klasseinstansvariabel
  • Den kan brukes til å påkalle eller initiere nåværende klassekonstruktør
  • Det kan sendes som et argument i metodeanropet
  • denne pekeren i Java kan sendes som argument i konstruktøranropet
  • denne operatøren i Java kan brukes til å returnere gjeldende klasseinstans
  • dette i Java er en referanse til det nåværende objektet, hvis metode blir påkalt.
  • Du kan bruke "dette" nøkkelordet for å unngå å navngi konflikter i metoden / konstruktøren til din forekomst / objekt.