Kezdőoldal » Számítástechnika » Programozás » Valaki el tudná magyarázni ez...

Valaki el tudná magyarázni ez mért van így? (referencia vs érték)?

Figyelt kérdés

"Nem rég" kezdtem el tanulgatni a nyelvet és a referencia érték közötti kapcsolatot/különbséget próbálnám értelmezni . Adott az alábbi kód:



[link]


és nem értem mért ez lesz a kimenete.Az ErtekatadoPelda(ertek) sorral meghívjuk az ErtekatadoPelda eljárást aminél írja is, hogy ertek = 2.1; de mikor futtatom,akkor nem ez lesz az eredmény, hanem 3,14. Ez mért van, hisz meghívtuk nem? Azt se értem mért 2.1 lesz a ReferenciaPelda(o) sornak hisz 2-vel felette az o.ertek sorral 3.14-et adtunk az o-nak. Szóval akkor ez most, hogy van?


2019. febr. 11. 09:07
 1/10 anonim ***** válasza:
14%

Millió helyen le van írva mi a különbség a referencia és érték típus között. Nézz utána.

Abszolút semmi értelme leírni ide pongyolán 10 milliomodjára.

2019. febr. 11. 09:19
Hasznos számodra ez a válasz?
 2/10 anonim ***** válasza:
35%
2019. febr. 11. 09:39
Hasznos számodra ez a válasz?
 3/10 A kérdező kommentje:
#1 Már olvastam ezekről és nem nagyon jött át, hogy mért nem változik, viszont amit a #2-es linkelt pont az olvasom most és kicsit tisztult.
2019. febr. 11. 09:44
 4/10 anonim ***** válasza:
Az a link is pont ezt írja le.
2019. febr. 11. 09:56
Hasznos számodra ez a válasz?
 5/10 A kérdező kommentje:
Hát nem tudom, nekem ezen az oldalon valahogy közérthetőbb volt a megfogalmazás, de kinek mi.
2019. febr. 11. 10:06
 6/10 anonim ***** válasza:
28%

Aha, aha.

Amúgy Google első találata lett belinkelve, tehát elképzelni nem tudom mit olvasgattál eddig.

2019. febr. 11. 10:18
Hasznos számodra ez a válasz?
 7/10 A kérdező kommentje:
pdf amiket letöltöttem/kaptam régebben
2019. febr. 11. 10:26
 8/10 anonim ***** válasza:
48%

Alapvetően mind a két függvényed érték szerint veszi át a paramétert, vagyis másolatot készít róla, a függvényen belül ez lokális változóként működik. Az első esetben megkapja a 3,14 értéket és annak egy másolatával dolgozik. Tehát az első függvényben valóban beállítod, hogy az 2,1 legyen, csakhogy az egy másik "ertek", az eredetihez nem nyúltál.

A második esetben egy objektumhivatkozást kap a függvény, ami valójában egy, az objektumra mutató cím. Erről is másolatot készít, de mivel a konkrét érték egy cím, a függvényen belüli "referencia" ugyanarra az objektumra fog mutatni. Tehát a main "o"-ja és a ReferenciaPelda "referencia"-ja két külön változó, két külön érték, de ugyanoda mutat, ugyanazzal az objektummal dolgoznak. Emiatt amikor átírod az objektum adatát, az eredetit írod át.

Ez a fő különbség, hogy az érték az az érték, amivel dolgozunk, a referencia pedig egy hivatkozás az érték helyére. Ha az elsőt másoljuk le, akkor az külön életet fog élni. Ha a másodikat, az is, de attól még ugyanoda fog mutatni.

// Kb.

ertek = 1;

o = new osztaly();

// a képzeletbeli memóriában:

100 - 1 (ez az 'ertek', mondjuk ha int lenne)

104 - 112 (ez az 'o' referencia értéke, vagyis egy cím)

108 -

112 - ... és itt van az objektum.

2019. febr. 11. 12:34
Hasznos számodra ez a válasz?
 9/10 anonim ***** válasza:

#2 vagyok

Nem tudom ki az, aki ide jár lepontozni, de ha olyan okos akkor magyarázza már meg a kedves kérdezőnek a dolgokat :)

2019. febr. 11. 21:57
Hasznos számodra ez a válasz?
 10/10 anonim ***** válasza:

Van egy papírlapod, rajta valami tartalom (írás, rajz, akármi).


Érték szerinti paraméterátadás:

- fogsz egy üres papírt, rámásolod azt ami a saját lapodon is van, és a másolatot átadod a haverodnak, hogy csináljon vele, amit akar. A papírod tartalmát így megkapta, de attól hogy ő kiradírozza vagy összefirkálja a saját példányát, a tiéd változatlan marad.


Referencia szerinti paraméterátadás:

- nem készítesz másolatot, hanem átsétálsz a haverodhoz, és leteszed a papírodat az asztalra. Most mindketten ugyanazt a papírt nézitek. Akármit ír rá az egyikőtök, ugyanazt fogja látni a másik is.

2019. febr. 12. 19:08
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!