Un método en Java es un bloque de código con nombre que realiza una tarea específica y se puede reutilizar cuantas veces necesites.
En lugar de escribir el mismo cálculo diez veces, lo escribes una sola vez dentro de un método. Después lo llamas desde cualquier parte del programa.
Estructura de un método
Todo método en Java sigue esta estructura:
tipoDeDato nombreDelMetodo(parámetros) {
// instrucciones
return resultado;
}
Cada parte tiene un rol:
| Parte | Descripción |
|---|---|
tipoDeDato |
Qué tipo de valor devuelve: int, double, String, void |
nombreDelMetodo |
Nombre descriptivo en camelCase |
parámetros |
Datos que el método recibe para trabajar |
return |
La instrucción que entrega el resultado |
void se usa cuando el método no devuelve ningún valor. Solo ejecuta instrucciones.
Métodos sin parámetros y sin retorno
El tipo más simple es el método void. No recibe datos ni devuelve nada.
static void mostrarBienvenida() {
System.out.println("Bienvenido al sistema de Liverpool");
}
Para llamarlo desde main, escribes:
mostrarBienvenida();
Resultado en consola:
Bienvenido al sistema de Liverpool
Este tipo de método es útil para mostrar mensajes o encabezados repetidos en pantalla.
Métodos con parámetros y con retorno
Aquí está el poder real de los métodos. Reciben datos, los procesan y devuelven un resultado.
Ejemplo 1 — Calcular el IVA de un producto de Mercado Libre:
static double calcularIVA(double precio) {
double iva = precio * 0.16;
return iva;
}
Llamada desde main:
double precioProducto = 1500;
double ivaProducto = calcularIVA(precioProducto);
System.out.println("IVA: $" + ivaProducto);
Resultado:
IVA: $240
El valor 1500 entra al método como precio. El método calcula 1500 * 0.16 y devuelve 240.0.
Ejemplo 2 — Calcular el precio final con IVA:
static double calcularPrecioFinal(double precio) {
double iva = precio * 0.16;
return precio + iva;
}
Llamada:
double precioFinal = calcularPrecioFinal(1500);
System.out.println("Precio final: $" + precioFinal);
Resultado:
Precio final: $1,740
Métodos con múltiples parámetros
Un método puede recibir más de un parámetro. Cada uno se separa con coma.
Ejemplo 3 — Calcular el descuento en Liverpool:
Supón que Liverpool aplica un porcentaje de descuento variable según la temporada.
static double calcularDescuento(double precio, double porcentaje) {
return precio * (porcentaje / 100);
}
Llamada:
double descuento = calcularDescuento(2400, 15);
System.out.println("Descuento: $" + descuento);
Resultado:
Descuento: $360
Puedes llamar el mismo método con datos distintos sin reescribir la fórmula.
System.out.println("Descuento VIP: $" + calcularDescuento(5000, 20));
Resultado:
Descuento VIP: $1,000
Métodos que llaman a otros métodos
Puedes construir métodos más complejos apoyándote en métodos que ya creaste.
Ejemplo 4 — Sistema de comisiones para vendedores de FEMSA:
En FEMSA, cada vendedor gana una comisión del 5% sobre sus ventas. Además, si supera $50,000 en ventas, recibe un bono fijo de $2,000.
Primero defines un método para la comisión base:
static double calcularComision(double ventas) {
return ventas * 0.05;
}
Después defines un método para el bono:
static double calcularBono(double ventas) {
if (ventas > 50000) {
return 2000;
} else {
return 0;
}
}
Finalmente, un método que combina ambos:
static double calcularPagoTotal(double ventas) {
double comision = calcularComision(ventas);
double bono = calcularBono(ventas);
return comision + bono;
}
Llamada desde main:
double ventasVendedor = 60000;
double pagoTotal = calcularPagoTotal(ventasVendedor);
System.out.println("Pago total: $" + pagoTotal);
Resultado:
Pago total: $5,000
El vendedor recibe $3,000 de comisión (5% de $60,000) más $2,000 de bono.
Métodos con tipo String
Los métodos también pueden devolver texto.
Ejemplo 5 — Clasificar a un repartidor de Bimbo según su rendimiento:
static String clasificarRepartidor(int entregas) {
if (entregas >= 50) {
return "Excelente";
} else if (entregas >= 30) {
return "Regular";
} else {
return "Bajo rendimiento";
}
}
Llamada:
System.out.println(clasificarRepartidor(55));
System.out.println(clasificarRepartidor(28));
Resultado:
Excelente
Bajo rendimiento
Este método devuelve una etiqueta de texto según el número de entregas realizadas.
Errores comunes
1. Olvidar el return en un método con tipo de dato.
Si declaras un método como double pero no escribes return, Java marcará error de compilación.
// INCORRECTO
static double calcularIVA(double precio) {
double iva = precio * 0.16;
// Falta el return
}
// CORRECTO
static double calcularIVA(double precio) {
double iva = precio * 0.16;
return iva;
}
2. Confundir el tipo de retorno con void.
Si el método necesita devolver un valor, no uses void. El compilador no te permitirá usar return valor dentro de un método void.
3. Pasar parámetros en el orden incorrecto.
Si el método espera (double precio, double porcentaje), no lo llames con los argumentos al revés. El resultado será matemáticamente incorrecto aunque Java no marque error.
// Correcto
calcularDescuento(2400, 15);
// Incorrecto — precio = 15, porcentaje = 2400
calcularDescuento(15, 2400);
4. Declarar variables dentro del método y usarlas fuera.
Las variables creadas dentro de un método solo existen ahí. No puedes usarlas en main ni en otro método. Esto se llama alcance (scope) de la variable.
Tabla de referencia rápida
| Tipo de método | Parámetros | Retorno | Ejemplo de uso |
|---|---|---|---|
void sin parámetros |
No | No | Mostrar un menú |
void con parámetros |
Sí | No | Imprimir el nombre de un cliente |
double con parámetros |
Sí | Sí (double) |
Calcular IVA o descuento |
String con parámetros |
Sí | Sí (String) |
Clasificar a un empleado |
int con parámetros |
Sí | Sí (int) |
Contar registros válidos |
Buenas prácticas al nombrar métodos
Usa verbos al inicio del nombre: calcular, obtener, mostrar, validar.
Usa camelCase: primera palabra en minúsculas, siguientes palabras con mayúscula inicial. Por ejemplo: calcularComision, mostrarResultado, obtenerDescuento.
El nombre debe describir exactamente qué hace el método. Un nombre claro evita confusiones cuando el código crece.
Resumen
Los métodos dividen el programa en partes pequeñas y manejables. Cada método tiene una responsabilidad clara. Cuando necesites el mismo cálculo en varios lugares, escríbelo una sola vez en un método y llámalo cuantas veces quieras.