tämä avainsana Java

Mitä tämä avainsana sisältää Java?

tämä avainsana sisään Java on viitemuuttuja, joka viittaa menetelmän tai konstruktorin nykyiseen objektiin. Tämän avainsanan käytön päätarkoitus Java on poistaa sekaannus luokkaattribuuttien ja parametrien välillä, joilla on sama nimi.

Tämän avainsanan käyttö Java

Seuraavassa on erilaisia ​​"tämän" avainsanan käyttötapoja Java:

  • Sitä voidaan käyttää viittaamaan nykyisen luokan ilmentymämuuttujaan
  • Sitä voidaan käyttää nykyisen luokan rakentajan kutsumiseen tai käynnistämiseen
  • Se voidaan välittää argumenttina metodikutsussa
  • Se voidaan välittää argumenttina konstruktorikutsussa
  • Sitä voidaan käyttää nykyisen luokan ilmentymän palauttamiseen

Napauta tätä jos video ei ole saatavilla

Ymmärrä "tämä" avainsana esimerkin avulla.

tämä avainsana Java
Java tämä avainsanaesimerkki

  1. luokka: luokan tili
  2. Instanssimuuttuja: a ja b
  3. Menetelmä Aseta tiedot: A:n ja b:n arvon asettaminen.
  4. Menetelmä Näytä tiedot: Näyttää a:n ja b:n arvot.
  5. Päämenetelmä: jossa luomme objektin Account-luokalle ja kutsumenetelmien joukkodatalle ja näytämme dataa.

Käännetään ja ajetaan koodi

A:n ja B:n odotettu lähtö tulee alustaa arvoihin 2 ja 3.

Mutta arvo on 0, miksi? Antaa tutkia.

tämä avainsana Java

Metodissa Set data argumentit ilmoitetaan a:lla ja b:llä, kun taas ilmentymämuuttujat on myös nimetty a:lla ja b:llä.

tämä avainsana Java

Suorituksen aikana kääntäjä on hämmentynyt. Onko "a" määritetyn operaattorin vasemmalla puolella ilmentymämuuttuja vai paikallinen muuttuja. Näin ollen se ei aseta 'a':n arvoa, kun menetelmäjoukon tietoja kutsutaan.

tämä avainsana Java

Ratkaisu on "tämä" avainsana

Liitä sekä "a" ja "b" kanssa Java tämän avainsanan jälkeen piste (.) -operaattori.

tämä avainsana Java

Koodin suorittamisen aikana, kun objekti kutsuu menetelmää "setdata". Avainsana "this" korvataan objektinkäsittelijällä "obj". (Katso alla oleva kuva).

tämä avainsana Java

Joten nyt kääntäjä tietää,

  • Vasemmalla puolella oleva "a" on ilmentymämuuttuja.
  • Oikealla puolella oleva "a" on paikallinen muuttuja

- muuttujat on alustettu oikein, ja odotettu tulos näytetään.

tämä avainsana Java

Oletetaan, että olet tarpeeksi älykäs valitsemaan eri nimet ilmentymämuuttuja- ja metodiargumenteille.

tämä avainsana Java

Mutta tällä kertaa luot kaksi luokan objektia, joista jokainen kutsuu set data -metodia.

Kuinka kääntäjä määrittää, onko sen tarkoitus toimia objektin 1 vai objektin 2 ilmentymämuuttujan kanssa.

tämä avainsana Java

No, kääntäjä implisiittisesti liittää instanssimuuttuja "this"-avainsanalla (alla oleva kuva).

tämä avainsana Java

Sellaisena, että objektin 1 kutsuessa joukkodatamenetelmää, instanssimuuttuja liitetään sen viitemuuttujaan.

tämä avainsana Java

Kun objekti 2 kutsuu set data -metodia, objektin 2 ilmentymämuuttujaa muutetaan.

tämä avainsana Java

Tästä prosessista huolehtii kääntäjä itse. Sinun ei tarvitse liittää "tätä" avainsanaa nimenomaisesti, ellei kyseessä ole poikkeustilanne, kuten esimerkissämme.

tämä avainsana Java esimerkin kanssa

Esimerkiksi: Käytä "tätä" avainsanaa oppiaksesi

Vaihe 1) Kopioi seuraava koodi muistilehtiöön.

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

Vaihe 2) Tallenna, käännä ja suorita koodi.

Vaihe 3) Näytetäänkö a & b:n arvo nollana? Korjaa virhe liittämällä rivit 6 ja 7 "tätä”avainsana.

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

Vaihe 4) Tallenna, kokoa ja suorita koodi. Tällä kertaa a:n ja b:n arvot on asetettu 2:ksi ja 3:ksi.

Yhteenveto

  • tätä Avainsana sisään Java on viitemuuttuja, joka viittaa nykyiseen objektiin.
  • Yksi tämän avainsanan käyttötavoista Java on viitata nykyisen luokan ilmentymän muuttujaan
  • Sitä voidaan käyttää nykyisen luokan rakentajan kutsumiseen tai käynnistämiseen
  • Se voidaan välittää argumenttina metodikutsussa
  • tämä osoitin sisään Java voidaan välittää argumenttina konstruktorikutsussa
  • tämä operaattori sisään Java voidaan käyttää nykyisen luokan ilmentymän palauttamiseen
  • tämä sisään Java on viittaus nykyiseen objektiin, jonka menetelmää kutsutaan.
  • Voit käyttää "tätä" avainsanaa välttääksesi nimiristiriidat ilmentymäsi/objektisi menetelmässä/konstruktorissa.

Tarkista artikkelimme aiheesta Java Haastattelukysymykset: - Klikkaa tästä