>> Tecnologia eletrônica >  >> Lar inteligente >> Vida Inteligente

As vantagens e desvantagens do método de sobrecarga em Java


Métodos sobrecarregados são métodos da mesma classe que compartilham o mesmo nome, mas aceitam diferentes tipos de variáveis ​​como argumentos. Por exemplo, uma classe pode conter dois métodos "add" diferentes:um que aceita dois valores duplos, "add(double a, double b)", e outro que aceita dois valores inteiros, "add(int a, int b). " O computador decide automaticamente qual método chamar em tempo de execução com base nos tipos de variáveis ​​que estão sendo passados ​​para o método.

Flexibilidade


Métodos sobrecarregados dão aos programadores a flexibilidade de chamar um método similar para diferentes tipos de dados. Se você estiver trabalhando em um programa de matemática, por exemplo, você pode usar sobrecarga para criar várias classes "multiply", cada uma das quais multiplica um número diferente de tipo de argumento:o mais simples "multiply(int a, int b)" multiplica dois inteiros; o método mais complicado "multiply(double a, int b, int c)" multiplica um double por dois inteiros - você pode chamar "multiply" em qualquer combinação de variáveis ​​para a qual você criou um método sobrecarregado e receber o resultado adequado.

Construtores


A sobrecarga também é usada em construtores para criar novos objetos com diferentes quantidades de dados. Por exemplo, você pode usar sobrecarga para criar três construtores diferentes para um objeto "Casa" com um número de casa, nome de rua e variáveis ​​de cor. O construtor mais simples "House()" não recebe argumentos e cria uma casa com variáveis ​​padrão ou vazias. Um construtor mais complexo, "House(int houseNumber, String streetName)", cria uma casa com o número da casa e o nome da rua especificados, mas uma cor padrão ou vazia. O construtor mais complexo, "House(int houseNumber, String streetName, String color)", cria uma casa com todas as informações especificadas, não deixando nada como padrão. Você pode então criar um objeto de casa com base nas informações atualmente disponíveis, com as informações indisponíveis deixadas em branco ou por padrão.

Referências ambíguas


Métodos sobrecarregados devem usar diferentes números ou tipos de argumentos para evitar ambiguidade. Se você criar dois métodos na mesma classe com o mesmo nome e aceitar dois inteiros como argumentos, o compilador Java não conseguirá distinguir entre os dois, mesmo que as variáveis ​​de entrada tenham nomes diferentes. Por exemplo, o método "add(int a, int b)" não pode existir na mesma classe que o método "add(int c, int d)".

Tipos de retorno


Você deve definir um tipo de retorno para cada método sobrecarregado. Os métodos podem ter diferentes tipos de retorno -- por exemplo, "add(int a, int b)" pode retornar um inteiro, enquanto "add(double a, double b)" retorna um double. No entanto, Java não pode distinguir entre dois métodos diferentes com base em seu tipo de retorno. Portanto, "int multiplique(duplo a, duplo b)" não pode existir na mesma classe que "duplo multiplicar(duplo a, duplo b)".