Hirdetés

Új hozzászólás Aktív témák

  • loszerafin

    senior tag

    válasz shev7 #847 üzenetére

    [...]hanem a referencia kerul atadasra, pont ezert hivjuk referencia szerinti atadasnak...

    Nem, nem. A ''referencia szerinti paraméterátadás'' fogalma független a Java-tól, független az objektumoktól, sőt független az objektum orientált programozástól.

    Egyrészt:

    Az érték szerinti paraméterátadás a következő:
    A hívó fél által átadott dologról (paraméter) egy másolat készül. Ezt a másolatot használja a hívott fél. Azaz a hívott fél hiába módosítja az argumentumát, az nincs kihatással a paraméterre, a hívó fél a módosításról nem vesz tudomást, hiszen a hívott eljárás csak egy másolatot módosít.

    A referencia szerinti paraméterátadásnál ha a hívott fél módosítja a megkapott dolgot,
    akkor a hívó félnél is megváltozik a dolog.

    Az, hogy ezt hogy oldják meg az egyes nyelvek, vagy megvalósítják-e egyáltalán, az most nem érdekes.

    Javában paraméterként objektum referenciát megadva a hívott eljárás egy másolatot kap a referenciáról, azaz azt hiába változtatja meg (nem az objektumot, hanem a referenciát), ebből a hívó fél semmit sem érzékel. Tehát az objektum referencia is érték szerint adódik át a hívott metódusnak.
    Pl. Nyugodtan lehet null-ra állítani a metódusban a megkapott objektum referenciát, attól még nem vész el az objektumunk, csak eggyel kevesebb referenciája lesz, és minimum egy marad, amit a hívó fél használ.



Új hozzászólás Aktív témák