Saltar a contenido

Sobrecarga de métodos

La sobrecarga de métodos es una característica que nos permite tener más de un método con el mismo nombre, siempre que usemos diferentes parámetros. Es la capacidad de crear múltiples métodos con el mismo nombre pero diferentes implementaciones. Se permite que una clase declare más de un método con el mismo identificador, pero para ello debe declarar diferentes parámetros (tanto en número como en el tipo de estos). Esta característica se denomina sobrecarga de métodos u overloading. Los métodos sobrecargados son diferenciados según el número y el tipo de los argumentos pasados en la invocación.

public class Matematicas{
    public int suma(int x, int y) {
        return x + y;
    }
    public double suma(double x, double y) {
        return x + y;
    }
    public double suma(double x, double y, double z){
        return x + y + z;
    }
}
Aunque ahora no tenga mucha utilidad, cuando se trabajen conceptos más complejos veremos que son de gran utilidad. No hay límite en la cantidad de sobrecarga que se puede hacer al diseñar constructores y métodos, la única restricción es que cada método debe tener una signature distinta con el mismo nombre.

Signature de un método

A tener en cuenta

Una buena práctica es sobrecargar métodos que hagan funciones que se llamen igual pero que el número de parámetros sea diferente.

Actividad

  • AC 609 (RA4/ CE4a CE4b CE4d CE4e CE4f / IC1 / 3p). Crea una clase MinutosSegundos.java, crea un método llamado obtenerMensajeDuracioncon dos parámetros enteros: minutos y segundos. El método devuelve un String. Valida que minutos sea mayor o igual a 0. Valida que segundos sea mayor o igual a 0 o menor o igual que 59. El método debe devolver “Valor inválido” si alguna de las validaciones anteriores no se cumple.

    Si los parámetros son válidos entonces calcula cuantas horas, minutos y segundos es igual a los minutos y segundos pasados por parámetro y devuelve “XXh YYm ZZs”, donde XX son las horas (calculadas a partir de los minutos), YY son los minutos (restantes) y ZZ son los segundos que nos pasan.

    Crea un segundo método con el mismo nombre (sobrecargado) pero solo con el parámetro de segundos. Valida que los segundos sea mayor o igual a 0. Si no devuelve “Valor inválido”. Si los segundos son válidos, calcula a partir de los segundos calcula cuántos minutos hay en los segundos pasados y luego llama al método con los dos parámetros (minutos y segundos) calculados.

    Crea el método main y llama a ambos método y prueba que funciona correctamente.

    Recuerda

    • 1 minuto son 60 segundos.
    • 1 hora son 60 minutos o 3600 segundos.

    Por ejemplo, para la entrada de 61 minutos la salida debe ser: 1h 1m 0s.