"Hallo Amigo!"
"Hoi!"
"Vandaag gaan we de klasse Object bestuderen.
Je hebt hem al gezien en je weet dat Object de basisklasse is voor alle klassen. Hij heeft praktisch geen gegevens, maar hij heeft wel verschillende methoden."
"Waarom heeft het methoden nodig? Maakt iemand echt instanties van de klasse Object?"
"Bekijk het op deze manier: de methoden in de klasse Object zijn gemeenschappelijk in alle klassen. Met andere woorden, de makers van Java hebben verschillende methoden geïdentificeerd die volgens hen elke klasse zou moeten hebben en hebben ze toegevoegd aan de klasse Object."
"En in combinatie met polymorfisme (de mogelijkheid om de methoden van de klasse Object in afgeleide klassen te overschrijven), wordt dit een zeer krachtig hulpmiddel."
"Laten we eens kijken wat deze methoden zijn:"
Methode | Beschrijving |
---|---|
|
Retourneert een tekenreeksrepresentatie van het object. |
|
Een paar methoden die worden gebruikt om objecten te vergelijken. |
|
Retourneert een speciaal object dat de huidige klasse beschrijft. |
|
Methoden voor het regelen van de toegang tot een object vanuit verschillende threads. Voor draadsynchronisatie. |
|
Met deze methode kunt u native niet-Java-bronnen vrijgeven: sluit bestanden, streams, enz. |
|
Met deze methode kunt u een object klonen: maakt een duplicaat van het object. |
"Deze methoden zijn onder te verdelen in 6 groepen. Met een aantal ben je al bekend, met de rest maken we in de volgende lessen kennis."
'Om de een of andere reden zie ik hier niets bruikbaars.'
"Amigo! Als deze methoden niet belangrijk waren, zouden ze ze niet aan elk afzonderlijk object hebben toegevoegd! Dus ik zou je aanraden om beter te kijken naar wat deze zijn en waarom ze nodig zijn. Als ze je onbelangrijk lijken , dan heb je iets niet of niet goed begrepen."
"Oké. Ik zal goed luisteren."
"Laten we beginnen met de toString() methode.
"Met deze methode kunt u een tekstbeschrijving krijgen van elk object. De implementatie ervan in de klasse Object is heel eenvoudig:"
return getClass().getName() + "@" + Integer.toHexString(hashCode());
"getClass() en hashCode() zijn ook methoden van de klasse Object.
Het aanroepen van deze methode levert meestal een resultaat als dit op:"
java.lang.Object@12F456
"En wat heb je aan zo'n beschrijving?"
"Deze beschrijving laat je de klasse weten van het object waarop de methode is aangeroepen. Je kunt ook onderscheid maken tussen objecten; verschillende objecten hebben verschillende cijfers achter het @-symbool."
"Maar de echte waarde van deze methode ligt ergens anders. Deze methode kan in elke klasse worden overschreven om een meer gedetailleerde of geschikte objectbeschrijving te retourneren."
"Maar er is meer. Omdat je een tekstrepresentatie van elk object kunt krijgen, heeft Java het voor je mogelijk gemaakt om ondersteuning te implementeren voor het 'toevoegen' van strings aan objecten. Bekijk het eens
:"
Code | Wat gebeurt er echt |
---|---|
|
|
|
|
|
|
"Ja, ik gebruik dit regelmatig. Vooral als ik een programma aan het schrijven ben of bugs zoek. Het is een handige operatie."
GO TO FULL VERSION