Create overloaded methods

Vamos criar um exemplo em Java que utiliza métodos sobrecarregados (overloaded methods) em uma classe chamada Calculadora. Métodos sobrecarregados são métodos que têm o mesmo nome, mas diferentes tipos ou números de parâmetros.

public class Calculadora {

    // Método sobrecarregado para somar dois inteiros
    public int somar(int num1, int num2) {
        return num1 + num2;
    }

    // Método sobrecarregado para somar três inteiros
    public int somar(int num1, int num2, int num3) {
        return num1 + num2 + num3;
    }

    // Método sobrecarregado para somar dois doubles
    public double somar(double num1, double num2) {
        return num1 + num2;
    }

    // Método sobrecarregado para concatenar duas strings
    public String concatenar(String str1, String str2) {
        return str1 + str2;
    }

    public static void main(String[] args) {
        // Criando um objeto Calculadora
        Calculadora minhaCalculadora = new Calculadora();

        // Chamando métodos sobrecarregados e exibindo os resultados
        System.out.println("Soma de dois inteiros: " + minhaCalculadora.somar(5, 7));
        System.out.println("Soma de três inteiros: " + minhaCalculadora.somar(3, 8, 2));
        System.out.println("Soma de dois doubles: " + minhaCalculadora.somar(3.5, 2.5));
        System.out.println("Concatenação de duas strings: " + minhaCalculadora.concatenar("Hello", " World"));
    }
}

Neste exemplo:

  • A classe Calculadora possui quatro métodos chamados somar, cada um com uma assinatura diferente (número ou tipo de parâmetros diferente).
  • Os métodos somar são sobrecarregados, permitindo calcular a soma de inteiros, a soma de três inteiros, a soma de doubles e a concatenação de strings.
  • No método main, criamos um objeto Calculadora e chamamos diferentes versões do método somar e do método concatenar.

A sobrecarga de métodos é uma prática comum em Java e é útil quando você deseja fornecer funcionalidades semelhantes, mas com diferentes tipos de entrada ou comportamentos específicos.