1. java-hell.de
  2. Temas
  3. Métodos
Tema 6 de 11

Aprende métodos en Java – Ejercicios online

Los métodos son bloques reutilizables. Escribirás tus propios métodos, les pasarás parámetros y devolverás resultados con return. Por fin tu código queda ordenado.

Los ejercicios

Lo que aprenderás en este tema

  1. Tu primer método
  2. Método con un parámetro
  3. Return
  4. Dos parámetros
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.

Basta de leer. Te toca.

En el tutorial escribes el código tú mismo, pulsas Ejecutar y ves al instante si tu programa funciona. Sin JDK, sin IDE, sin rollos.

Practicar Métodos en tu navegador