Objektumok létrehozása - 1

"Szia, ismét a kedvenc tanárod. Mivel ilyen nagyot haladsz, úgy döntöttem, mesélek neked a tárgyakról és arról, hogyan dolgozz velük."

" Egy objektum létrehozásához be kell írnia az "új" kulcsszót, majd a típus nevét (osztálynevet). Tegyük fel például, hogy van egy "Cat" nevű osztályunk:"

Kód Leírás
Cat cat;
Kihirdet egy Cat hivatkozási változót, melynek neve cat. A cat változó értéke null.
new Cat();
Létrehoz egy Cat objektumot.
Cat cat = new Cat();
Létrehoz egy Cat hivatkozási változót cat.
Új Cat objektumot hoz létre. Hivatkozást rendel az újonnan létrehozott objektumhoz a cat változóhoz.
Cat kitty = new Cat();
Cat smokey = new Cat();
Két objektum jön létre. A rájuk való hivatkozások két különböző változóhoz vannak rendelve.
Cat kitty = new Cat();
Cat smokey = new Cat();

smokey = kitty;
Két objektum jön létre. A rájuk való hivatkozások két különböző változóhoz vannak rendelve.

Ezután beállítjuk a smokey változót a kitty változó által hivatkozott objektumra való hivatkozással. Mindkét változó most az elsőként létrehozott objektumokra vonatkozik.
(Mivel a második objektumra már nem hivatkoznak sehol, ezért szemétnek minősül)

Cat kitty = new Cat();
Cat smokey = null;

smokey = kitty;

kitty = null;
Létrejön egy Cat objektum, és az első változóhoz (kitty) hozzárendeljük a hivatkozást. A második változó (smokey) egy üres (null) hivatkozást tárol.

Mindkét változó ugyanarra az objektumra vonatkozik.

Most már csak a füstös, de nem a cica utal egy tárgyra.

"Mi történne, ha létrehoznánk egy objektumot, és nem mentenének hivatkozást egyetlen változóba sem?"

"Ha csak létrehozunk egy objektumot anélkül, hogy hozzárendelnénk egy változóhoz, a Java gép létrehozza, majd szemétnek (nem használt objektumnak) nyilvánítja. Egy idő után az objektumot a szemétgyűjtés során megsemmisítjük. "

"Hogyan dobjam meg azt a tárgyat, amelyre már nincs szükségem?"

"Nem. Amint egyetlen változó sem hivatkozik egy objektumra, azt szemétként címkézi fel, és a Java gép megsemmisíti, amikor legközelebb szemetet gyűjt. "

Amíg van legalább egy hivatkozás egy objektumra, az aktívnak minősül, és nem semmisül meg. Ha hamarabb szeretne megválni egy objektumtól, törölheti az összes hivatkozást úgy, hogy nullát rendel az összes változóhoz, amely hivatkozik rá.

"Értem. Az elmúlt néhány leckéhez képest ez elég egyszerűnek tűnik."

"Diego egész éjjel fent volt, hogy feladatokat dolgozzon ki neked. Ezt a különleges erőfeszítést csak érted tette. Remek humora van, tudod?


Előadásrészlet egy mentorral a Codegym University tanfolyam részeként. Jelentkezzen a teljes tanfolyamra.