Wat is dit trefwoord in Java?
dit sleutelwoord in Java is een referentievariabele die verwijst naar het huidige object van een methode of een constructor. Het belangrijkste doel van het gebruik van dit sleutelwoord in Java is om de verwarring tussen klassekenmerken en parameters met dezelfde naam te verwijderen.
Hieronder volgen verschillende toepassingen van 'dit' trefwoord in Java:
- Het kan worden gebruikt om de instantievariabele van de huidige klasse te verwijzen
- Het kan worden gebruikt om de huidige klasseconstructor aan te roepen of te starten
- Het kan worden doorgegeven als een argument in de methodeaanroep
- Het kan worden doorgegeven als argument in de constructor-aanroep
- Het kan worden gebruikt om de huidige klasse-instantie te retourneren
Klik hier als de video niet toegankelijk is
Begrijp 'dit' zoekwoord met een voorbeeld.
- Klasse : klasaccount
- Instancevariabele : a en b
- Methode Gegevens instellen : Om de waarde voor a en b in te stellen.
- Methode Gegevens tonen : Om de waarden voor a en b weer te geven.
- Hoofdmethode: waar we een object maken voor Accountklasse en methoden aanroepen om gegevens in te stellen en gegevens weer te geven.
Laten we de code compileren en uitvoeren
Onze verwachte uitvoer voor A en B moet worden geïnitialiseerd met respectievelijk de waarden 2 en 3.
Maar de waarde is 0, waarom? Laat het onderzoeken.
In de methode Set data worden de argumenten gedeclareerd als a en b, terwijl de instantievariabelen ook worden genoemd als a en b.
Tijdens de uitvoering is de compiler in de war. Of "a" aan de linkerkant van de toegewezen operator de instantievariabele of de lokale variabele is. Daarom wordt de waarde van 'a' niet ingesteld wanneer de methodesetgegevens worden aangeroepen.
De oplossing is het trefwoord "dit"
Voeg zowel 'a' als 'b' toe met het Java this sleutelwoord gevolgd door een punt (.) Operator.
Tijdens code-uitvoering wanneer een object de methode 'setdata' aanroept. Het sleutelwoord 'dit' wordt vervangen door de objecthandler 'obj'. (Zie onderstaande afbeelding).
Dus nu weet de compiler,
- De 'a' aan de linkerkant is een instancevariabele.
- Terwijl de 'a' aan de rechterkant een lokale variabele is
De variabelen zijn correct geïnitialiseerd en de verwachte uitvoer wordt weergegeven.
Stel dat u slim genoeg bent om verschillende namen te kiezen voor uw instantievariabele en methode-argumenten.
Maar deze keer maak je twee objecten van de klasse, die elk de set data-methode aanroepen.
Hoe de compiler zal bepalen of deze moet werken op de instantievariabele van object 1 of object 2.
Welnu, de compiler voegt impliciet de instantievariabele toe met "dit" sleutelwoord (afbeelding hieronder).
Zodanig dat wanneer object 1 de set data-methode aanroept, een instantievariabele wordt toegevoegd door zijn referentievariabele.
Terwijl object 2 de set data-methode aanroept, wordt een instantievariabele van object 2 gewijzigd.
Dit proces wordt door de compiler zelf verzorgd. U hoeft 'dit' zoekwoord niet expliciet toe te voegen, tenzij er een uitzonderlijke situatie is zoals in ons voorbeeld.
Voorbeeld: om het gebruik van "dit" trefwoord te leren
Stap 1) Kopieer de volgende code naar een notitieblok.
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();}}
Stap 2) Bewaar, compileer en voer de code uit.
Stap 3) Waarde van a & b wordt weergegeven als nul? Om de fout te corrigeren, voegt u regel 6 en 7 toe met " dit " trefwoord.
this.a =a;this.b =b;
Stap 4) Bewaar, compileer en voer de code uit. Deze keer worden de waarden van a & b respectievelijk ingesteld op 2 en 3.
Overzicht
- dit trefwoord in Java is een referentievariabele die verwijst naar het huidige object.
- Een van de toepassingen van dit sleutelwoord in Java is om te verwijzen naar de huidige klasse-instantievariabele
- Het kan worden gebruikt om de huidige klasseconstructor aan te roepen of te starten
- Het kan worden doorgegeven als een argument in de methodeaanroep
- deze pointer in Java kan worden doorgegeven als argument in de constructor-aanroep
- deze operator in Java kan worden gebruikt om de huidige klasse-instantie te retourneren
- dit in Java is een verwijzing naar het huidige object, waarvan de methode wordt aangeroepen.
- U kunt "dit" sleutelwoord gebruiken om naamconflicten in de methode / constructor van uw instantie / object te voorkomen.