dette søgeord i Java
Hvad er dette søgeord i Java?
dette søgeord i Java er en referencevariabel, der refererer til det aktuelle objekt for en metode eller en konstruktør. Hovedformålet med at bruge dette søgeord i Java er at fjerne forvirringen mellem klasseattributter og parametre, der har samme navne.
Brug af dette søgeord i Java
Følgende er forskellige anvendelser af 'dette' søgeord i Java:
- Den kan bruges til at henvise til instansvariabel af den aktuelle klasse
- Den kan bruges til at påkalde eller starte den nuværende klassekonstruktør
- Det kan sendes som et argument i metodekaldet
- Det kan sendes som argument i konstruktørkaldet
- Den kan bruges til at returnere den aktuelle klasseinstans
Klik link. hvis videoen ikke er tilgængelig
Forstå 'dette' søgeord med et eksempel.
- Klasse: klassekonto
- Forekomstvariabel: a og b
- Metode Sæt data: For at indstille værdien for a og b.
- Metode Vis data: For at vise værdierne for a og b.
- Hovedmetode: hvor vi opretter et objekt til kontoklasse og kaldemetoder sæt data og viser data.
Lad os kompilere og køre koden
Vores forventede output for A og B bør initialiseres til henholdsvis værdierne 2 og 3.
Men værdien er 0, hvorfor? Lad undersøge.
I metoden Sæt data er argumenterne erklæret som a og b, mens instansvariablerne også er navngivet som a og b.
Under udførelsen er compileren forvirret. Om "a" på venstre side af den tildelte operator er instansvariablen eller den lokale variabel. Derfor indstiller den ikke værdien af 'a', når metodesættets data kaldes.
Løsningen er "dette" nøgleordet
Tilføj både 'a' og 'b' med Java dette søgeord efterfulgt af en prik (.) operator.
Under kodeudførelse, når et objekt kalder metoden 'setdata'. Nøgleordet "dette" erstattes af objektbehandleren "obj." (Se billedet nedenfor).
Så nu ved compileren,
- 'a'et' i venstre side er en Instance-variabel.
- Hvorimod 'a'et på højre side er en lokal variabel
variabler initialiseres korrekt, og det forventede output vises.
Antag, at du er smart nok til at vælge forskellige navne til dine instansvariabler og -metodeargumenter.
Men denne gang opretter du to objekter i klassen, som hver kalder den indstillede datametode.
Hvordan compileren vil afgøre, om den skal fungere på instansvariablen af objekt 1 eller objekt 2.
Nå, den compiler implicit tilføjer instansvariablen med "dette" nøgleord (billede nedenfor).
Sådan, at når objekt 1 kalder sætdatametoden, tilføjes en instansvariabel af dens referencevariabel.
Mens objekt 2 kalder sæt datametoden, ændres en instansvariabel for objekt 2.
Denne proces varetages af compileren selv. Du behøver ikke udtrykkeligt at tilføje 'dette' søgeord, medmindre der er en ekstraordinær situation som i vores eksempel.
dette søgeord i Java med Eksempel
Eksempel: Brug "dette" søgeord for at lære
Trin 1) Kopier følgende kode ind i en notesblok.
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(); } }
Trin 2) Gem, kompilér og kør koden.
Trin 3) Værdien af a & b er vist som nul? For at rette fejlen skal du tilføje linje #6 og 7 med "denne” nøgleord.
this.a =a; this.b =b;
Trin 4) Gem, kompilér og kør koden. Denne gang er værdierne af a & b sat til henholdsvis 2 & 3.
Resumé
- denne Søgeord i Java er en referencevariabel, der refererer til det aktuelle objekt.
- En af anvendelsen af dette søgeord i Java er at henvise til den aktuelle klasseinstansvariabel
- Den kan bruges til at påkalde eller starte den nuværende klassekonstruktør
- Det kan sendes som et argument i metodekaldet
- denne pointer ind Java kan sendes som argument i konstruktørkaldet
- denne operatør i Java kan bruges til at returnere den aktuelle klasseinstans
- dette i Java er en reference til det aktuelle objekt, hvis metode bliver kaldt.
- Du kan bruge "dette" nøgleord for at undgå navnekonflikter i metoden/konstruktøren af din instans/objekt.
Tjek vores artikel vedr Java Interview spørgsmål:- Klik her