Hirdetés

Keresés

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

  • jeri
    tag

    Ezt olvastam egy Sybex könyvben:

    --------------------
    Which of the following statements accurately describes how variables are passed to methods?
    A. Arguments are always passed by value.
    B. Arguments are always passed by reference.
    C. Arguments that are primitive type are passed by value.
    D. Arguments that are passed with the & operator are passed by reference.
    --------------------

    Boldogan bejelöltem az A-t, majd megnéztem a megoldást:

    C. Arguments are not always passed only by reference or only by value. It depends on the
    argument itself, and primitives are always passed by value. Java does not use the & operator
    to denote “pass by reference” as is done in the C programming language. See Chapter 1 for
    more information.

    Én azt gondolom, hogy mindig értékmásolás történik paraméterátadásnál, függetlenül attól, hogy objektum referencia vagy primitív típusú az átadni kívánt paraméter.

    Ha ''objektumot adunk át paraméterként'' akkor nem is az objektum a paraméter, hanem az objektum referencia, ami már ''by value'' kerül a metódusba.

    Mit gondoltok?


    Közben megnéztem a Sun site-ján (nyilván ott olvastam ezt) és bizony így van
    http://java.sun.com/docs/books/tutorial/java/javaOO/arguments.html
    Úgyhogy ezt a Sybex könyvet el kell felejteni...

    C és társai érték szerint
    meg létezik:címszerint,eredmény-érték szerint,visszatérési érték szerint.

  • Lortech
    addikt

    Ezt olvastam egy Sybex könyvben:

    --------------------
    Which of the following statements accurately describes how variables are passed to methods?
    A. Arguments are always passed by value.
    B. Arguments are always passed by reference.
    C. Arguments that are primitive type are passed by value.
    D. Arguments that are passed with the & operator are passed by reference.
    --------------------

    Boldogan bejelöltem az A-t, majd megnéztem a megoldást:

    C. Arguments are not always passed only by reference or only by value. It depends on the
    argument itself, and primitives are always passed by value. Java does not use the & operator
    to denote “pass by reference” as is done in the C programming language. See Chapter 1 for
    more information.

    Én azt gondolom, hogy mindig értékmásolás történik paraméterátadásnál, függetlenül attól, hogy objektum referencia vagy primitív típusú az átadni kívánt paraméter.

    Ha ''objektumot adunk át paraméterként'' akkor nem is az objektum a paraméter, hanem az objektum referencia, ami már ''by value'' kerül a metódusba.

    Mit gondoltok?


    Közben megnéztem a Sun site-ján (nyilván ott olvastam ezt) és bizony így van
    http://java.sun.com/docs/books/tutorial/java/javaOO/arguments.html
    Úgyhogy ezt a Sybex könyvet el kell felejteni...

    Kérdés az, hogy mit tekintesz értéknek.
    Én azt mondtam volna, amit megadtak megoldásnak. De szó szerint véve elfogadható az A is, mivel egy objektum értéke a referenciája. (szintaktikailag)
    Ugyanakkor ha azt mondod, hogy referencia szerinti átadás van objektumoknál, szerintem akkor sem mondasz hülyeséget (sőt), mivel az az érték ami átadódik az egy referencia, így ugyanazt mondod, csak a referencia pontosabb megnevezés, bővebb jelentéssel bír, épp ezért ez utóbbit preferálom.

  • shev7
    veterán

    Ezt olvastam egy Sybex könyvben:

    --------------------
    Which of the following statements accurately describes how variables are passed to methods?
    A. Arguments are always passed by value.
    B. Arguments are always passed by reference.
    C. Arguments that are primitive type are passed by value.
    D. Arguments that are passed with the & operator are passed by reference.
    --------------------

    Boldogan bejelöltem az A-t, majd megnéztem a megoldást:

    C. Arguments are not always passed only by reference or only by value. It depends on the
    argument itself, and primitives are always passed by value. Java does not use the & operator
    to denote “pass by reference” as is done in the C programming language. See Chapter 1 for
    more information.

    Én azt gondolom, hogy mindig értékmásolás történik paraméterátadásnál, függetlenül attól, hogy objektum referencia vagy primitív típusú az átadni kívánt paraméter.

    Ha ''objektumot adunk át paraméterként'' akkor nem is az objektum a paraméter, hanem az objektum referencia, ami már ''by value'' kerül a metódusba.

    Mit gondoltok?


    Közben megnéztem a Sun site-ján (nyilván ott olvastam ezt) és bizony így van
    http://java.sun.com/docs/books/tutorial/java/javaOO/arguments.html
    Úgyhogy ezt a Sybex könyvet el kell felejteni...

    szerintem meg teljesen jol, es erthetoen van leirva, nem ertem mi a gond? Az ertek es a referencia szerinti atadas kozott az a leglenyegesebb kulonbseg, hogy az eredeti ertek megvaltozik-e. Ha objektumot adsz at, es megvaltoztatod egy parameteret, akkor az eredetinek is valtozni fog. Marpedig ekkor a parameteratadas nem lehet ertek szerinti :)

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