Paso de parámetros por valor en Java

Hola a todos, hoy os explicare el paso de parámetro por valor en Java, intentando aclarar algo de lo que hay mucha controversia en Java.

Cuando pasamos un parámetro a un método siempre se pasa por valor sea del tipo que sea, sea un String, un int, un double, un objeto, etc. esto significa que el valor del parámetro real (cuando se invoca en la clase ejecutable) se copia al parámetro formal (definido en el método), haciendo que la variable externa no cambie.

Hay mucha controversia en este tema por el paso de parámetro por referencia de otros lenguajes de programación, en Java NO EXISTE EL PASO DE PARÁMETROS POR REFERENCIA, ya que aunque se pase por parámetro un objeto, este copia la dirección de memoria que apunta al objeto, pero no pasamos el objeto en sí, solo su dirección.

Veamos un ejemplo:

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Compartir

4 comentarios

  1. Alex

    Por qué cuando le doy un valor al array num[], por ejemplo num[0]=5, este cambia y con integer no pasa lo mismo?

  2. Disco Duro de Roer Post author

    No entiendo tu pregunta, ¿a que te refieres exactamente?

    Un saludo

  3. Alex

    Al principio se declara int a = 5, y no cambia aunque pase por el método «metodoA» , pero si le doy un valor al array int num[]=new int[3] antes de que pase por el método(rellenarArray), por ejemplo num[0]=5, este cambia cuando pasa por el método .
    ¿A que se debe que el (int a) no cambie y el (int num[]) si?
    Gracias por tu respuesta. Saludos.

  4. Disco Duro de Roer Post author

    Esto se debe a que un array tiene como una direccion guardada en memoria, y tu puedes acceder a valores y si cambias alguno aunque sea en un metodo este se mantiene el cambio, pero si es una variable normal y corriente, no le afectara porque es como si fuera una variable local dentro de ese metodo.

    Espero que te sea de ayuda.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


Warning: Trying to access array offset on value of type null in /home2/discodur/public_html/discoduroderoer/wp-content/themes/disto/single.php on line 539