"Szia, Amigo, megint én vagyok, Ellie. Elnézést, hogy újra és újra ezt mondom, de ez a 31. századi Földön megszokott. Szeretnék további részleteket adni a referenciaváltozókról és a referenciaváltozók függvényeknek való átadásáról ( mód)."
"Készen állok."
"Remek, akkor figyeljen. A referenciaváltozók bármilyen nem primitív változók. Az ilyen változók csak objektumhivatkozást tartalmaznak (hivatkozás egy objektumra)."
"A primitív változók értékeket tartalmaznak, míg a referenciaváltozók objektumokra vagy nullára utalnak. Jól gondolom?"
"Teljesen."
– Mi az a hivatkozás?
"A tárgy és egy tárgyreferencia kapcsolata olyan, mint egy személy és a telefonszáma közötti kapcsolat. A telefonszám nem a személy, de felhívható, információ kérhető, kezelhető, ill. parancsokat ad. A hivatkozás az objektumokkal való munkavégzéshez is használható. Minden objektum hivatkozások segítségével kölcsönhatásba lép egymással."
– Mintha telefonon beszélnének egymással?
"Pontosan. Amikor egy primitív változót hozzárendel, az értéket másolja. Ha hivatkozás van hozzárendelve, akkor csak az objektum címe (a telefonszám) kerül másolásra. Maga az objektum nem kerül másolásra. "
"Rendben, értem."
"A hivatkozás még egy előnnyel jár: bármely metódusnak átadhat egy objektumhivatkozást, és ez a metódus képes lesz a hivatkozás segítségével módosítani (megváltoztatni) az objektumot metódusainak meghívásával és az objektumon belüli adatok elérésével."
1. példa
Az m és n értékek itt nem változnak.
|
És itt van miért.
Ez a kód analóg a bal oldali kóddal
|
"Csak az 5 (m) és 6 (n) értékek vannak hozzárendelve a változókhozaésb;aésbsemmit sem tud (és semmilyen módon nem befolyásolja) m-ről és n-ről."
"Az igazat megvallva most már rájöttem, hogy nem értettem semmit. Mondana még néhány példát?"
"Objektumhivatkozással a következőket tehettük volna:"
2. példa
Az objektumok adatai megváltoznak ebben a kódban
|
És itt van miért.
Ez a kód analóg a bal oldali kóddal
|
"A jen-re és a beth-re való hivatkozások az a és b változókhoz vannak rendelve; a és b megváltoztatja a jen és beth objektumok értékeit."
– És deklarálhatsz osztályokat más osztályokon belül is, igaz?
– De minden máshoz még mindig nem nagyon értek.
– Mindent a kellő időben.
GO TO FULL VERSION