see märksõna sisse Java

⚡ Nutikas kokkuvõte

Java See märksõna on viitemuutuja, mis osutab meetodi või konstruktori sees olevale praegusele objektile. LessNeed hõlmavad eesmärki, levinud kasutusviise, nimekonflikte, konstruktori aheldamist ja töötatud näidet.

  • 🔑 Määratlus: see viitab klassi praegusele eksemplarile.
  • 🧱 Lahenda konfliktid: Kasutage seda välja (this.field), et eristada eksemplari muutujaid identsete nimedega parameetritest.
  • 🪜 Konstruktori kasutamine: this() kutsub puhtama initsialiseerimise jaoks esile sama klassi teise konstruktori.
  • Läbiminek ja tagasitulek: Saada see argumendina või tagasta meetodite aheldamise toetamisele.
  • 🧪 Töötatud näide: Klass Konto näitab, kuidas see parandab parameetrite varjutamisest tingitud nullväljundit.
  • 🤖 AI abi: Tehisintellekti kodeerimistööriistad tuvastavad selle eesliite puudumise ja pakuvad välja täpseid refaktoreid.

see märksõna sisse Java

Milles see märksõna on? Java?

. see märksõna sisse Java on viitemuutuja, mis viitab meetodi või konstruktori praegusele objektile. Selle märksõna kasutamise peamine eesmärk Java on kõrvaldada segadus klassi atribuutide ja samanimeliste parameetrite vahel.

Selle märksõna kasutamine Java

Järgnevalt on toodud selle märksõna erinevad kasutusviisid Java:

  • Seda saab kasutada praeguse klassi eksemplari muutujale viitamiseks.
  • Seda saab kasutada praeguse klassi konstruktori kutsumiseks või initsialiseerimiseks.
  • Selle saab meetodikõnes argumendina edastada.
  • Selle saab konstruktorikutses argumendina edastada.
  • Seda saab kasutada praeguse klassi eksemplari tagastamiseks.

Click siin kui video pole juurdepääsetav

Kuidas seda märksõna näite abil mõista

see märksõna sisse Java
Java see märksõna Näide

  1. klass: klassi konto
  2. Eksemplari muutuja: a ja b
  3. Meetod Määra andmed: a ja b väärtuse määramiseks.
  4. Meetod Näita andmeid: a ja b väärtuste kuvamiseks.
  5. Peamine meetod: kus me loome Account klassi jaoks objekti ja kutsume välja meetodid set data ja show data.

Kompilaatori segaduse läbimine

Kompileerime ja käivitame koodi.

Meie eeldatav väljund A ja B jaoks tuleks lähtestada vastavalt väärtustele 2 ja 3.

Aga väärtus on 0. Miks? Uurime.

see märksõna sisse Java

Meetodis Set data deklareeritakse argumendid kui a ja b, samas kui eksemplari muutujad on samuti nimetatud a ja b.

see märksõna sisse Java

Täitmise ajal on kompilaator segaduses. Kas määratud operaatori vasakul pool olev „a” on eksemplari muutuja või lokaalne muutuja. Seega ei määra see meetodi andmete komplekti kutsumisel „a” väärtust.

see märksõna sisse Java

Lahendus on see märksõna.

Lisage nii „a“ kui ka „b“ tähega Java sellele märksõnale järgneb punkt (.) operaator.

see märksõna sisse Java

Koodi täitmise ajal, kui objekt kutsub meetodi setdata, asendatakse märksõna this objektikäitlejaga „obj”. (Vt allolevat pilti.)

see märksõna sisse Java

Nüüd teab koostaja,

  • Vasakul pool olev „a” on eksemplari muutuja.
  • Paremal pool olev „a” on lokaalne muutuja.

. muutujad on õigesti lähtestatud ja kuvatakse oodatav väljund.

see märksõna sisse Java

Kuidas kompilaator käsitleb mitut objekti

Oletame, et valid oma eksemplari muutujale ja meetodi argumentidele erinevad nimed.

see märksõna sisse Java

Kuid seekord loote kaks klassi objekti, millest igaüks kutsub välja andmemäärangu meetodi.

Kuidas kompilaator määrab, kas see peaks töötama objekti 1 või objekti 2 eksemplarimuutujaga?

see märksõna sisse Java

Noh, see on kompilaator lisab kaudselt eksemplari muutuja märksõnaga this (pilt allpool).

see märksõna sisse Java

Nii, et kui objekt 1 kutsub välja andmekomplekti meetodi, lisatakse eksemplari muutuja selle võrdlusmuutuja juurde.

see märksõna sisse Java

Sel ajal, kui objekt 2 kutsub välja andmekomplekti meetodi, muudetakse objekti 2 eksemplari muutujat.

see märksõna sisse Java

Kompilaator tegeleb sellega automaatselt. Märksõna `this` ei pea otseselt lisama, välja arvatud erandjuhtudel.

Näide: see märksõna Java koos Code

Näide: Selle märksõna kasutamise õppimiseks.

Step 1) Kopeerige järgmine kood märkmikusse.

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

Step 2) Salvesta, kompileeri ja käivita kood.

Step 3) Kas a ja b väärtus on näidatud nullina? Vea parandamiseks lisage ridadele 6 ja 7 järgmine väärtus: see märksõna.

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

Step 4) Salvesta, kompileeri ja käivita kood. Seekord on a ja b väärtused vastavalt 2 ja 3.

KKK

Märksõna this viitab praegusele objektile, mille meetodit või konstruktorit parajasti täidetakse. See võimaldab koodil juurde pääseda selle objekti enda eksemplari väljadele ja meetoditele.

Ei. Märksõna „this” kuulub eksemplarile, samas kui staatilised meetodid eksisteerivad klassi tasandil. Selle märksõna kasutamine staatilise meetodi sees põhjustab kompileerimisaja vea.

this() kutsub esile teise samast klassist konstruktori kui esimene lause. See väldib koodi dubleerimist ja võimaldab ühel konstruktoril delegeerida seadistamise ülekoormatud konstruktorile.

Tehisintellekti kodeerimisassistendid märgistavad varjutatud parameetrid, lisavad puuduva eesliite „this” ja kirjutavad konstruktorid ümber, et kasutada aheldamist „this()” ja sujuvaid settereid, mis tagastavad „this”.

Tehisintellekti juhendajad selgitavad objekti identiteeti, näitavad eksemplari ja lokaalset ulatust ning toovad samm-sammult näiteid koos viktoriinidega, mis kinnitavad, millal seda märksõna kasutada.

Vaadake meie artiklit Java Intervjuu küsimused: - Kliki siia

Võta see postitus kokku järgmiselt: