Junior
Mi az a hivatkozási típusú adatok?
sobes.tech MI
Válasz az MI-től
A hivatkozási típusok nem tárolják magát az értéket, hanem egy hivatkozást (memóriacím) arra a helyre, ahol ez az érték tárolva van. Az ilyen adatok hozzárendelése vagy átadása során csak a hivatkozás másolódik, nem az egész objektum. A hivatkozáson keresztül végzett módosítások láthatók lesznek, amikor más hivatkozásokon keresztül érik el ugyanazt az objektumot.
Példák hivatkozási típusokra különböző nyelveken:
- Java: Osztályok (
String,Object, egyedi osztályok), interfészek, tömbök. - C#: Osztályok (
string,object, egyedi osztályok), interfészek, delegáltak, tömbök. - Python: Minden adat típus (listák, szótárak, tuple-ök, halmazok, osztályok, függvények).
# Python példája
list1 = [1, 2, 3]
list2 = list1 # list2 ugyanarra a listára hivatkozik, mint list1
list2.append(4)
print(list1) # Kimenet: [1, 2, 3, 4]
print(list2) # Kimenet: [1, 2, 3, 4]
A különbség az értéktípusokhoz képest az, hogy az értéktípusok magát az értéket tárolják, és hozzárendelés vagy átadás esetén az egész érték másolódik.
Összehasonlító példa:
| Jellemző | Értéktípusok | Hivatkozási típusok |
|---|---|---|
| Tárolás | Maga az érték | Hivatkozás az értékre |
| Hozzárendelés/átadás | Az érték másolata | A hivatkozás másolata |
| Módosítás | Nem befolyásolja az eredetit | Megváltoztatja az eredetit |
| Példa (C#) | int, struct, enum |
class, interface, array |