Programação Progressiva

Fórum para dúvidas dos sites: Programação Progressiva, Java Progressivo, C Progressivo


Você não está conectado. Conecte-se ou registre-se

Sobrecarga de métodos

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

1 Sobrecarga de métodos em Sex Dez 05, 2014 7:28 pm

Não concordo com o descrito abaixo:

Quando invocamos o método com um inteiro como um argumento, o Java é inteligente o suficiente para invocar corretamente o método que foi declarado com inteiro como parâmetro.

Porque:

Se implementar o método quadrado Long, não será executado, como fiz no segundo código abaixo.

public class Sobrecarga {

public static int quadrado(int num){
int quadrado;
quadrado = num * num;
return quadrado;
}

public static double quadrado(double num){
double quadrado;
quadrado = num * num;
return quadrado;
}

public static void main(String[] args){
System.out.println("Inteiro 2 ao quadrado: " + quadrado(2));
System.out.println("Double PI ao quadrado: " + quadrado( Math.PI ));
}

}

Executa o método do int quadrado.

package Metodos;

public class Sobrecarga {
   
public static long quadrado(long num) {
       long quadrado;
       quadrado = num * num;
       return quadrado;
}

public static int quadrado(int num){
       int quadrado;
       quadrado = num * num;
       return quadrado;
   }

   public static double quadrado(double num){
       double quadrado;
       quadrado = num * num;
       return quadrado;
   }
   
   public static void main(String[] args){
       System.out.println("Inteiro 2 ao quadrado: " + quadrado(2));
       System.out.println("Long ao quadrado: " + quadrado(123456789));
       System.out.println("Double PI ao quadrado: " + quadrado( Math.PI ));
   }

}

Resultado do programa acima:

Inteiro 2 ao quadrado: 4
Long ao quadrado: -1757895751
Double PI ao quadrado: 9.869604401089358


==============================================================

Para executar o método quadrado da variável Long, tem que implementar o método.

package Metodos;

public class Sobrecarga {

public static long quadradoLong(long num) {
long quadrado;
quadrado = num * num;
return quadrado;
}

public static int quadrado(int num){
int quadrado;
quadrado = num * num;
return quadrado;
}

public static double quadrado(double num){
double quadrado;
quadrado = num * num;
return quadrado;
}

public static void main(String[] args){
System.out.println("Inteiro 2 ao quadrado: " + quadrado(2));
System.out.println("Long ao quadrado: " + quadradoLong(123456789));
System.out.println("Double PI ao quadrado: " + quadrado( Math.PI ));
}

}

Ver perfil do usuário

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum