Semana 10 - Métodos en Java
1. ¿Qué es un método en Java?
Un método en Java es un bloque de código que realiza una tarea específica y puede ser invocado (llamado) desde otras partes del programa. Los métodos permiten modularizar el código, hacerlo reutilizable y más fácil de mantener.
Características principales:
- Un método tiene un nombre único.
- Puede aceptar parámetros (entradas).
- Puede devolver un valor (salida) o no devolver nada (void).
- Se define dentro de una clase.
2. Estructura básica de un método
La sintaxis general de un método en Java es:
[modificadores] tipoRetorno nombreMetodo([parámetros]) {
// Cuerpo del método
}
- Modificadores:
public,private,static, etc. - tipoRetorno: Tipo de dato que devuelve el método (
int,String,void, etc.). - nombreMetodo: Nombre del método (sigue las convenciones de nombres en Java: camelCase).
- parámetros: Lista opcional de variables que el método recibe.
- Cuerpo: Código que se ejecuta cuando se llama al método.
Ejemplo básico:
public void saludar() {
System.out.println("¡Hola, mundo!");
}
3. Tipos de métodos en Java
3.1. Métodos sin retorno (void)
No devuelven ningún valor. Se utilizan cuando el método solo realiza una acción.
public void imprimirMensaje(String mensaje) {
System.out.println(mensaje);
}
3.2. Métodos con retorno
Devuelven un valor usando la palabra clave return. El tipo de retorno debe coincidir con el tipo declarado.
public int sumar(int a, int b) {
return a + b;
}
3.3. Métodos con parámetros
Aceptan uno o más parámetros para realizar operaciones.
public double calcularAreaCirculo(double radio) {
return Math.PI * radio * radio;
}
3.4. Métodos sin parámetros
No requieren parámetros.
public String obtenerFechaActual() {
return java.time.LocalDate.now().toString();
}
4. Modificadores de acceso
Controlan la visibilidad de un método. Los modificadores son:
public: Accesible desde cualquier clase.private: Solo accesible dentro de la misma clase.protected: Accesible dentro del mismo paquete y en clases hijas (herencia).default(sin modificador): Accesible solo dentro del mismo paquete.
Ejemplo:
public class EjemploAcceso {
public void metodoPublico() {
System.out.println("Método público");
}
private void metodoPrivado() {
System.out.println("Método privado");
}
protected void metodoProtegido() {
System.out.println("Método protegido");
}
void metodoDefault() {
System.out.println("Método default");
}
}
5. Métodos estáticos (static)
Pertenecen a la clase, no a una instancia. Se pueden invocar sin crear un objeto.
Ejemplo:
public class Calculadora {
public static int multiplicar(int a, int b) {
return a * b;
}
}
public class Main {
public static void main(String[] args) {
int resultado = Calculadora.multiplicar(5, 3); // Llamada sin instancia
System.out.println(resultado); // 15
}
}
Actividad práctica: Gestión de un supermercado
Enunciado
Imagina que trabajas en un supermercado y necesitas crear un programa en Java para ayudar con las operaciones diarias en la caja. El programa debe realizar las siguientes tareas:
- Mostrar un mensaje de bienvenida al cliente.
- Calcular el total de una compra sumando los precios de dos productos.
- Aplicar un descuento del 10% si el total supera los $50.
- Calcular el cambio a devolver al cliente según el dinero pagado.
- Mostrar un resumen de la compra con el total, descuento (si aplica), pago y cambio.
Instrucciones paso a paso
Sigue estos pasos cuidadosamente para crear el programa en Java:
-
Crea un proyecto en Java llamado
Supermercado:- Asegúrate de importar la clase
Scanner(import java.util.Scanner;) para leer la entrada del usuario.
- Asegúrate de importar la clase
-
Crea el método
mostrarBienvenida:- Declara un método estático (
static), sin retorno (void), sin parámetros. - El método debe imprimir un mensaje de bienvenida, por ejemplo: "¡Bienvenido al Supermercado La Económica!" y una nota sobre el descuento ("Por compras mayores a $50, obtienes un 10% de descuento.").
- Declara un método estático (
-
Crea el método
calcularTotal:- Declara un método estático (
static), con retorno (double), que reciba dos parámetros (precio1yprecio2, ambos de tipodouble). - El método debe devolver la suma de
precio1yprecio2.
- Declara un método estático (
-
Crea el método
aplicarDescuento:- Declara un método estático (
static), con retorno (double), que reciba un parámetro (totalde tipodouble). - Si
totales mayor a 50, devuelvetotal * 0.9(aplica 10% de descuento). Si no, devuelvetotalsin cambios.
- Declara un método estático (
-
Crea el método
calcularCambio:- Declara un método estático (
static), con retorno (double), que reciba dos parámetros (totalypago, ambos de tipodouble). - Si
pagoes menor quetotal, devuelve-1(indica pago insuficiente). Si no, devuelvepago - total.
- Declara un método estático (
-
Crea el método
imprimirResumen:- Declara un método estático (
static), sin retorno (void), que reciba cuatro parámetros (total,totalConDescuento,pago,cambio, todos de tipodouble). - Imprime un resumen con:
- El total original (formateado a 2 decimales con
printf). - El total con descuento (formateado a 2 decimales).
- El pago recibido (formateado a 2 decimales).
- Si
cambioes mayor o igual a 0, imprime el cambio devuelto (formateado). Si no, imprime "Error: Pago insuficiente.". - Un mensaje final: "¡Gracias por su compra!".
- El total original (formateado a 2 decimales con
- Declara un método estático (
-
Crea el método
main:- Declara el método
maincomopublic static void main(String[] args). - Crea un objeto
Scannerpara leer la entrada del usuario. - Llama a
mostrarBienvenida()para mostrar el mensaje inicial. - Pide al usuario que ingrese el precio del primer producto (
double) y guárdalo en una variable. - Pide al usuario que ingrese el precio del segundo producto (
double) y guárdalo en otra variable. - Llama a
calcularTotalcon los dos precios y guarda el resultado en una variable. - Llama a
aplicarDescuentocon el total y guarda el resultado en otra variable. - Muestra el total a pagar (formateado a 2 decimales) y pide al usuario que ingrese el monto pagado (
double). - Llama a
calcularCambiocon el total con descuento y el pago, y guarda el resultado. - Llama a
imprimirResumencon el total original, total con descuento, pago y cambio. - Cierra el objeto
Scanner.
- Declara el método
-
Prueba el programa:
- Compila y ejecuta el programa.
- Ingresa precios para dos productos (ejemplo: 30.5 y 25.0).
- Ingresa un monto pagado (ejemplo: 60.0).
- Verifica que el programa:
- Muestre el mensaje de bienvenida.
- Calcule correctamente el total (ejemplo: 55.5).
- Aplique el descuento si corresponde (ejemplo: 55.5 * 0.9 = 49.95).
- Calcule el cambio (ejemplo: 60.0 - 49.95 = 10.05).
- Muestre un resumen claro.
- Prueba con a pago insuficiente (ejemplo: 40.0) para verificar que muestra el error.