Methods in Java: parameters, return, overloading and recursion
Learn to organise your code into reusable functions. With call simulators, overloading, varargs and recursion.
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
}
Parameters and return value
Los parámetros entran; el return saca un resultado. Un método void no devuelve nada (solo «hace algo», como imprimir).
Method overloading
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: variable number of arguments
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
Recursion
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.Variable scope
Una variable declarada dentro de un método (o de un bloque { }) solo existe ahí. Fuera, no.
Check what you've learned
int factorial(int n){ if(n<=1) return 1; return n*factorial(n-1); }, ¿cuánto es factorial(4)?void…