Métodos en Java: parámetros, retorno, sobrecarga y recursividad
Aprende a organizar tu código en funciones reutilizables. Con simuladores de llamada, sobrecarga, varargs y recursividad.
Un método es un bloque de código con nombre que hace una tarea concreta. Escribes la lógica una vez y la llamas tantas veces como quieras. Es la base para no repetirte y para que el código se lea.
public static int suma(int a, int b) {
// │ │ │ └── parámetros (entradas)
// │ │ └── nombre
// │ └── tipo que devuelve (int)
// └── modificadores
return a + b; // valor de salida
}
Parámetros y valor de retorno
Los parámetros entran; el return saca un resultado. Un método void no devuelve nada (solo «hace algo», como imprimir).
Sobrecarga de métodos
Puedes tener varios métodos con el mismo nombre si se diferencian en el número o tipo de parámetros. Java elige la versión correcta según cómo lo llames.
int area(int lado) { return lado * lado; } // cuadrado
int area(int base, int altura) { return base * altura; } // rectángulo
double area(double radio) { return Math.PI * radio * radio; } // círculo
Varargs: número variable de argumentos
Con tipo... nombre el método acepta 0, 1 o muchos valores. Dentro se maneja como un array.
int sumar(int... numeros) {
int total = 0;
for (int n : numeros) total += n;
return total;
}
sumar(1, 2, 3); // 6
sumar(10, 20, 30, 40); // 100
Recursividad
Un método recursivo se llama a sí mismo con un problema más pequeño, hasta llegar a un caso base que ya sabe resolver. El ejemplo clásico: el factorial.
int factorial(int n) {
if (n <= 1) return 1; // caso base
return n * factorial(n - 1); // caso recursivo
}
StackOverflowError.Ámbito (scope) de las variables
Una variable declarada dentro de un método (o de un bloque { }) solo existe ahí. Fuera, no.
Comprueba lo aprendido
int factorial(int n){ if(n<=1) return 1; return n*factorial(n-1); }, ¿cuánto es factorial(4)?void…