Java siempre pasa los argumentos por valor: el método recibe una copia. Si el parámetro es un tipo primitivo (int, double...), modificarlo adentro del método no afecta a la variable original.
public static void incrementar(int n) {
n = n + 1; // solo cambia la copia local
}
int x = 5;
incrementar(x);
System.out.println(x); // sigue siendo 5
Con objetos (como arrays), la copia es de la referencia: ambas variables apuntan al mismo objeto, así que modificar sus atributos adentro del método sí se nota afuera — pero reasignar la variable del parámetro a otro objeto, no.
Pon a prueba lo que aprendiste
Concepto
¿Cómo pasa Java los argumentos a un método?
ADepende de si usas static
BSiempre por referencia
CSiempre por valor (una copia)
DPor valor los objetos, por referencia los primitivos
Ver respuesta
C) Siempre por valor (una copia) Java siempre pasa por valor; con objetos, ese 'valor' es la referencia (dirección) al objeto.
Trazar código
¿Qué imprime este código?
public static void cambiar(int n) {
n = 100;
}
int x = 5;
cambiar(x);
System.out.println(x);
A100
B0
C5
DError de compilación
Ver respuesta
C) 5 El método recibió una copia de x; modificar esa copia no afecta a x.
Objetos
Si un método recibe un array y le cambia un elemento (array[0] = 99), ¿se nota afuera del método?
ASolo si el método devuelve el array
BSí, porque ambas variables apuntan al mismo array en memoria
CSolo si el array es static
DNo, porque los arrays también se copian por valor completo
Ver respuesta
B) Sí, porque ambas variables apuntan al mismo array en memoria La referencia se copia, pero apunta al mismo array; modificar sus elementos sí se ve afuera.
🎯 Practica esta lección completa
Ejercicios de completar código, ordenar bloques y respuesta libre. Ganas XP y mantienes tu racha.