English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial Básico de Java

Controle de fluxo do Java

Array do Java

Java orientado a objetos (I)

Java orientado a objetos (II)

Java orientado a objetos (III)

Tratamento de Exceções Java

Lista List do Java

Fila Queue do Java

Conjunto Map do Java

Conjunto Set do Java

Entrada e saída do Java (I/O)

Reader do Java/Writer

Temas do Java

Sobrecarga de métodos do Java

Neste artigo, você aprenderá sobre sobrecarga de métodos e como implementar sobrecarga em Java com exemplos.

No Java, se dois ou maisMétodosSe os parâmetros forem diferentes (número diferente de parâmetros, tipos diferentes de parâmetros ou ambos), eles podem ter o mesmo nome. Esses métodos são chamados de métodos sobrecarregados, e essa funcionalidade é chamada de sobrecarga de métodos. Por exemplo:

void func() { ... }
void func(int a) { ... }
float func(double a) { ... }
float func(int a, float b) { ... }

Aqui, o método func() é sobrecarregado. Esses métodos têm o mesmo nome, mas aceitam diferentes parâmetros.

Por favor, note que os tipos de retorno desses métodos são diferentes. Os métodos sobrecarregados podem ter diferentes tipos de retorno, ou podem não ter diferentes tipos de retorno, mas os parâmetros que eles aceitam devem ser diferentes.

Por que sobrecarga de métodos?}

Suponha que você precise executar a operação de adição de um número dado, mas pode haver qualquer número de parâmetros (por simplicidade, podemos dizer2ou3com parâmetros).

Para completar a tarefa, pode-se criar dois métodos sum2num(int, int) e sum3num(int, int, int). Mas, outros programadores e você no futuro podem se sentir confusos, porque esses dois métodos têm comportamento semelhante, mas nomes diferentes.

A melhor maneira de completar essa tarefa é sobrecarregar o método. E, com base nos parâmetros passados, chame um dos métodos sobrecarregados. Isso ajuda a melhorar a legibilidade do programa.

Como executar a sobrecarga de métodos em Java?

Aqui estão diferentes métodos para executar a sobrecarga de métodos:

1. ao alterar a quantidade de parâmetros para sobrecarregar

class MethodOverloading {
    private static void display(int a){
        System.out.println("Parâmetro: " + a);
    }
    private static void display(int a, int b){
        System.out.println("Parâmetro: " + a + " e " + b);
    }
    public static void main(String[] args) {
        display(1);
        display(1, 4);
    }
}

Saída:

parâmetro: 1
parâmetro: 1 e 4

2. ao alterar o tipo de dados do parâmetro

class MethodOverloading {
    //Este método aceita um int
    private static void display(int a){
        System.out.println("Ficamos com os dados inteiros.");
    }
    //Este método aceita um objeto String
    private static void display(String a){
        System.out.println("Ficamos com o objeto String.");
    }
    public static void main(String[] args) {
        display(1);
        display("Hello");
    }
}

Saída:

Ficamos com os dados inteiros
Ficamos com o objeto String.

Aqui, os dois métodos sobrecarregados aceitam um parâmetro. Mas, um aceita um parâmetro do tipo int, enquanto o outro aceita um objeto String.

Vamos ver um exemplo real:

class HelperService {
    private String formatNumber(int value) {
        return String.format("%d", value);
    }
    private String formatNumber(double value) {
        return String.format("%.3f", value);
    }
    private String formatNumber(String value) {
        return String.format("%.2f", Double.parseDouble(value));}}
    }
    public static void main(String[] args) {
        HelperService hs = new HelperService();
        System.out.println(hs.formatNumber(5))
        System.out.println(hs.formatNumber(89.9934))
        System.out.println(hs.formatNumber("550"));
    }
}

Quando o programa for executado, a saída será:

500
89.993
550.00

AtençãoEm Java, você também pode sobrecarregar construtores de maneira semelhante a métodos.

Recomendações relacionadas: Sobrecarga de construtores Java

Atenção

  • Se dois ou mais métodos aceitam diferentes parâmetros, eles podem ter o mesmo nome na mesma classe. Esta funcionalidade é chamada de sobrecarga de métodos.

  • A sobrecarga de métodos pode ser implementada de qualquer uma das seguintes maneiras:

    • Alterando o número de parâmetros.

    • ou alterando o tipo de dados dos parâmetros.

  • Não é possível realizar sobrecarga de métodos apenas alterando o tipo de retorno do método.