Tämä avainsana Java: Mikä on & Kuinka käyttää esimerkin kanssa

Mikä tämä avainsana on Javassa?

tämä Java-avainsana on viitemuuttuja, joka viittaa menetelmän tai konstruktorin nykyiseen kohteeseen. Tämän avainsanan Java-käyttötarkoituksen pääasiallinen tarkoitus on poistaa hämmennys luokkamääritteiden ja samannimisten parametrien välillä.

Seuraavassa on useita tämän "avainsanan" käyttötapoja Java: ssa:

  • Sitä voidaan käyttää viittaamaan nykyisen luokan ilmentymämuuttujaan
  • Sitä voidaan käyttää nykyisen luokan konstruktorin kutsumiseen tai aloittamiseen
  • Se voidaan välittää argumenttina metodikutsussa
  • Se voidaan välittää argumenttina konstruktorin kutsussa
  • Sitä voidaan käyttää palauttamaan nykyinen luokan ilmentymä

Napsauta tätä, jos video ei ole käytettävissä

Ymmärrä "tämä" avainsana esimerkillä.

Java tämä avainsana Esimerkki
  1. Luokka : luokka Tili
  2. Ilmentymämuuttuja : a ja b
  3. Menetelmä Aseta tiedot : Aseta arvo a: lle ja b: lle.
  4. Menetelmä Näytä tiedot : Näyttää a: n ja b: n arvot.
  5. Tärkein menetelmä: missä luomme objektin tililuokalle ja puhelumenetelmille asetetaan tietoja ja näytetään tietoja.

Kootaan ja ajetaan koodi

Odotettu tuotos A: lle ja B: lle tulisi alustaa arvoihin 2 ja 3 vastaavasti.

Mutta arvo on 0, miksi? Anna tutkia.

Metodiasetustiedoissa argumentit ilmoitetaan a ja b, kun taas ilmentymämuuttujat nimetään myös a ja b.

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

Ratkaisu on "tämä" avainsana

Liitä sekä 'a' että 'b' Java-sanaan tämä avainsana ja piste (.) -Operaattori.

Koodin suorituksen aikana, kun objekti kutsuu menetelmää setdata. Hakusana "tämä" korvataan objektinkäsittelijällä "obj". (Katso alla oleva kuva).

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

  • Vasemmalla puolella oleva 'a' on instanssimuuttuja.
  • Oikeanpuoleinen a-kirjain on paikallinen muuttuja

Muuttujat alustetaan oikein ja odotettu tuotos näytetään.

Oletetaan, että olet tarpeeksi älykäs valitsemaan erilaisia ​​nimiä ilmentymämuuttujalle ja Method-argumenteille.

Mutta tällä kertaa luot kaksi luokan objektia, joista kukin kutsuu asetettua datamenetelmää.

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

No, kääntäjä epäsuorasti liittää instanssin muuttujan "tämä" avainsana (kuva alla).

Sellainen, että kun objekti 1 kutsuu asetettua datamenetelmää, instanssimuuttuja liitetään sen referenssimuuttujaan.

Kun objekti 2 kutsuu asetettua datamenetelmää, objektin 2 ilmentymämuuttujaa muokataan.

Kääntäjä itse huolehtii tästä prosessista. Sinun ei tarvitse liittää 'tätä' avainsanaa nimenomaisesti, ellei kyseessä ole poikkeuksellinen tilanne, kuten esimerkissämme.

Esimerkki: Opi käyttämään "tämä" avainsanaa

Vaihe 1) Kopioi seuraava koodi muistikirjaan.

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) a & b: n arvo näytetään nollana? Korjaa virhe liittämällä rivit 6 ja 7 avainsanalla " tämä ".

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

Vaihe 4) Tallenna, käännä ja suorita koodi. Tällä kertaa a & b: n arvoiksi asetetaan 2 ja 3.

Yhteenveto

  • tämä Java-avainsana on viitemuuttuja, joka viittaa nykyiseen objektiin.
  • Yksi tämän avainsanan käytöstä Javassa on viitata nykyiseen luokan esiintymämuuttujaan
  • Sitä voidaan käyttää nykyisen luokan konstruktorin kutsumiseen tai aloittamiseen
  • Se voidaan välittää argumenttina metodikutsussa
  • tämä Java-osoitin voidaan välittää argumenttina konstruktorin kutsussa
  • tätä Java-operaattoria voidaan käyttää palauttamaan nykyinen luokan ilmentymä
  • tämä Java-viitteessä viittaa nykyiseen objektiin, jonka menetelmää käytetään.
  • Voit käyttää "tätä" avainsanaa välttääksesi ristiriitoja ilmentymän / objektin menetelmässä / konstruktorissa.

Mielenkiintoisia artikkeleita...