Ejercicio 1 de 4
Tu primer método
Un método es un bloque de código reutilizable con nombre.
static void hola() {
IO.println("¡Hola!");
}
void significa: el método no devuelve nada, solo hace algo.
El método saludar ya está definido. Llámalo en main.
Código inicial
void saludar() {
IO.println("¡Bienvenido!");
}
void main() {
// Llama a saludar()
}
Contexto
La pila de llamadas
Cuando se llama a un método, la JVM apila un nuevo stack frame (marco) en la pila de llamadas (call stack). Ahí guarda los parámetros, las variables locales y la dirección de retorno.
Cuando el método termina, el marco se quita de nuevo y la ejecución salta de vuelta. Demasiadas llamadas anidadas (p. ej. una recursión infinita) → StackOverflowError.
Ejercicio 2 de 4
Método con un parámetro
Los métodos pueden recibir valores de entrada (parámetros):
static void decirHola(String nombre) {
IO.println("Hola " + nombre);
}
El método imprimirDoble recibe un número e imprime el doble de su valor. Añade la única línea que falta.
Código inicial
void imprimirDoble(int numero) {
// Imprime numero * 2
}
void main() {
imprimirDoble(5);
imprimirDoble(12);
}
Contexto
Paso por valor
Java siempre pasa los parámetros por valor — el método recibe una copia del valor. Si cambias el parámetro dentro del método, la variable original sigue igual.
Con objetos se copia la referencia — así que puedes cambiar el objeto en sí, pero no la referencia. Esto confunde a los principiantes constantemente.
Ejercicio 3 de 4
Return
En vez de solo imprimir algo, un método puede devolver un valor:
static int porDos(int x) {
return x * 2;
}
En lugar de void ahora escribes el tipo de retorno (int), y return devuelve el valor.
Añade la línea con return para que cuadrado devuelva el cuadrado del número.
Código inicial
int cuadrado(int n) {
// Devuelve n * n
return 0;
}
void main() {
IO.println(cuadrado(4));
IO.println(cuadrado(7));
}
Contexto
void vs. tipo de retorno
void = "este método no devuelve nada". Cualquier otro tipo (int, String, etc.) te obliga a devolver un valor con return.
El compilador comprueba que todos los caminos posibles terminen en un return. Si tienes un if sin else y solo devuelves dentro de él, Java protesta — al fin y al cabo, la condición podría ser false.
Ejercicio 4 de 4
Dos parámetros
Los métodos pueden tener varios parámetros — separados por comas:
static int sumar(int a, int b) {
return a + b;
}
Arregla la línea del return: devuelve el mayor de los dos valores.
Consejo: Puedes escribir: if (a > b) return a; else return b;
Código inicial
int maximo(int a, int b) {
// Devuelve el valor mayor
return 0;
}
void main() {
IO.println(maximo(3, 7));
IO.println(maximo(10, 2));
}
Contexto
Sobrecarga de métodos
En Java puedes tener varios métodos con el mismo nombre, siempre que sus parámetros sean distintos. Eso se llama sobrecarga (overloading):
int maximo(int a, int b) y double maximo(double a, double b) pueden convivir. Java elige automáticamente la versión correcta según los tipos que le pases.