O Java é uma linguagem de programação orientada a objetos qu...
O Java é uma linguagem de programação orientada a objetos que tem por característica compilar o código do desenvolvedor para um bytecode que é interpretado por uma máquina Java virtual (JVM). A respeito da utilização de métodos estáticos e operadores matemáticos na linguagem Java, analise o código abaixo e marque a alternativa que indica, corretamente, o valor que será apresentado em tela ao final da sua execução.
-
import java. lang.Math;
public class Teste {
-
public static double inc(double a) {
return ++a + 1.1;
};
public static double inc(int a) {
return Math.pow(a, 2);
};
public static float inc(float a) {
return a++ + 2;
};
public static String inc(String a) {
return a+ 1;
};
public static void main(String args[]) {
float a, b = 1000;
a= inc(b);
System.out.println(a);
}
}
- Gabarito Comentado (1)
- Aulas (1)
- Comentários (0)
- Estatísticas
- Cadernos
- Criar anotações
- Notificar Erro
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: C - 1002.0
Vamos analisar o código e entender por que a alternativa correta é a letra C.
Primeiramente, é necessário compreender o conceito de sobrecarga de métodos em Java. A sobrecarga permite que uma classe tenha mais de um método com o mesmo nome, desde que suas assinaturas (parâmetros) sejam diferentes.
No código fornecido, há quatro métodos sobrecarregados chamados inc
:
public static double inc(double a)
public static double inc(int a)
public static float inc(float a)
public static String inc(String a)
Durante a execução do main
, temos:
float a, b = 1000;
a = inc(b);
A variável b
é um float e está sendo passada como argumento para o método inc
. Logo, o compilador Java seleciona o método inc(float a)
, pois ele corresponde ao tipo de dado de b
.
Dentro do método inc(float a)
, temos:
return a++ + 2;
O operador a++
primeiro retorna o valor atual de a
(que é 1000) e, em seguida, incrementa a
. Portanto, a expressão a++ + 2
resulta em 1000 + 2 = 1002.0.
Assim, o valor retornado é atribuído à variável a
no método main
e, em seguida, impresso no console.
Agora, vamos justificar as alternativas incorretas:
A - 1000000.0: Esta alternativa estaria correta se o método chamado fosse inc(int a)
, que eleva o valor ao quadrado. No entanto, o tipo do parâmetro b
é float, então este método não é chamado.
B - 1002.1: Esta alternativa estaria correta se o método chamado fosse inc(double a)
, mas o tipo de b
é float.
D - 1003: Esta alternativa estaria correta se o operador de incremento fosse pré-incremento e não pós-incremento. ++a
resultaria em 1001 + 2 = 1003, mas o código usa a++
.
E - 1001: Esta alternativa estaria correta se o incremento não somasse 2. a++
retornaria 1000 e, após o incremento, seria 1001, mas não somaria 2.
Gostou do comentário? Deixe sua avaliação aqui embaixo!
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo