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ä.
- Luokka : luokka Tili
- Ilmentymämuuttuja : a ja b
- Menetelmä Aseta tiedot : Aseta arvo a: lle ja b: lle.
- Menetelmä Näytä tiedot : Näyttää a: n ja b: n arvot.
- 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.