Saltar a contenido

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:

  1. Mostrar un mensaje de bienvenida al cliente.
  2. Calcular el total de una compra sumando los precios de dos productos.
  3. Aplicar un descuento del 10% si el total supera los $50.
  4. Calcular el cambio a devolver al cliente según el dinero pagado.
  5. 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:

  1. Crea un proyecto en Java llamado Supermercado:

    • Asegúrate de importar la clase Scanner (import java.util.Scanner;) para leer la entrada del usuario.
  2. 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.").
  3. Crea el método calcularTotal:

    • Declara un método estático (static), con retorno (double), que reciba dos parámetros (precio1 y precio2, ambos de tipo double).
    • El método debe devolver la suma de precio1 y precio2.
  4. Crea el método aplicarDescuento:

    • Declara un método estático (static), con retorno (double), que reciba un parámetro (total de tipo double).
    • Si total es mayor a 50, devuelve total * 0.9 (aplica 10% de descuento). Si no, devuelve total sin cambios.
  5. Crea el método calcularCambio:

    • Declara un método estático (static), con retorno (double), que reciba dos parámetros (total y pago, ambos de tipo double).
    • Si pago es menor que total, devuelve -1 (indica pago insuficiente). Si no, devuelve pago - total.
  6. 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 tipo double).
    • 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 cambio es mayor o igual a 0, imprime el cambio devuelto (formateado). Si no, imprime "Error: Pago insuficiente.".
      • Un mensaje final: "¡Gracias por su compra!".
  7. Crea el método main:

    • Declara el método main como public static void main(String[] args).
    • Crea un objeto Scanner para 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 calcularTotal con los dos precios y guarda el resultado en una variable.
    • Llama a aplicarDescuento con 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 calcularCambio con el total con descuento y el pago, y guarda el resultado.
    • Llama a imprimirResumen con el total original, total con descuento, pago y cambio.
    • Cierra el objeto Scanner.
  8. 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.