Logo Passei Direto
Buscar
Durante o desenvolvimento de uma aplicação na linguagem Java, com os conceitos de programação orientada a objetos, foi implementado o método a seguir:public double calcularVenda(double val, double perc, int qtd) { ............. }
Determine o uso de polimorfismo de sobrecarga de métodos que está sendo aplicado de forma correta:
public int calcularVenda(int qtd, double val, double perc)
public int Venda(double val, double perc, int qtd)
public double calcularVenda(double v, double p, int q)
public double calcular(double val, int qtd, double perc)
public double calcularVenda(double perc, double val, int qtd)
User badge image
ComportamentoHumano360

há 4 meses

Respostas

User badge image

Ed Verified user icon

há 4 meses

Vamos analisar o conceito de polimorfismo por sobrecarga de métodos em Java: - A sobrecarga ocorre quando há métodos com o mesmo nome, mas com assinaturas diferentes (tipos ou ordem dos parâmetros). - O tipo de retorno não influencia na sobrecarga. - O nome do método deve ser exatamente o mesmo. Dado o método original: ```java public double calcularVenda(double val, double perc, int qtd) ``` Vamos analisar as alternativas: 1. `public int calcularVenda(int qtd, double val, double perc)` - Mesmo nome: calcularVenda - Parâmetros: (int, double, double) — ordem e tipos diferentes - Tipo de retorno diferente (int vs double) — não impede sobrecarga → Correto para sobrecarga. 2. `public int Venda(double val, double perc, int qtd)` - Nome diferente: Venda ≠ calcularVenda → Não é sobrecarga. 3. `public double calcularVenda(double v, double p, int q)` - Mesmo nome e mesma assinatura (mesmos tipos e ordem) → Não é sobrecarga, é redefinição (override) ou duplicação. 4. `public double calcular(double val, int qtd, double perc)` - Nome diferente: calcular ≠ calcularVenda → Não é sobrecarga. 5. `public double calcularVenda(double perc, double val, int qtd)` - Mesmo nome - Parâmetros: (double, double, int), mas ordem diferente do original (val, perc, qtd) vs (perc, val, qtd) → Ordem diferente, portanto assinatura diferente → sobrecarga válida. Conclusão: as alternativas que representam sobrecarga correta são a 1 e a 5. Porém, a questão pede o uso correto do polimorfismo de sobrecarga, e entre as opções apresentadas, a que melhor representa isso é: Resposta correta: `public int calcularVenda(int qtd, double val, double perc)` (alternativa 1)

Essa resposta te ajudou?

0
Dislike0

Ainda não achou a resposta?

  • Integrado com os principais modelos de IA do mercado
  • Respostas em segundos
  • IA treinada para estudantes brasileiros.
PasseIA logoEvolua sua forma de estudar

Cadastre-se ou realize login

Ainda com dúvidas?

Envie uma pergunta e tenha sua dúvida de estudo respondida!

Essa pergunta também está no material:

Mais perguntas desse material

Um desenvolvedor precisa implementar o método entradaDados() na classe Treinamento, implementada a seguir. Considere que os métodos setters e getters serão implementados corretamente.
class Treinamento {
String nomeAluno; int ano; double nota;
// Métodos setters
// Métodos getters
}
Compare as possíveis soluções apresentadas a seguir e avalie qual é a correta para atender à implementação do método entradaDados() da classe, responsável por realizar a entrada de dados por meio do teclado.
Compare as possíveis soluções apresentadas a seguir e avalie qual é a correta para atender à implementação do método entradaDados() da classe, responsável por realizar a entrada de dados por meio do teclado.
Resposta correta: public void entradaDados() { Scanner sc = new Scanner(System.in); System.out.println("Aluno:"); nomeAluno = sc.nextLine(); System.out.println("Ano:"); ano = Integer.parseInt(sc.nextLine()); System.out.println("Nota:"); nota = Double.parseDouble(sc.nextLine()); } Como os atributos ano e Nota não são String, precisamos realizar a conversão de dados, utilizando Integer.parseInt() para o ano, uma vez que ano é do tipo inteiro e Double.parseDouble() para a nota, uma vez que nota não é inteiro, sendo um tipo real (double).
Distratores:
public void entradaDados() { Scanner sc = new Scanner(System.in); System.out.println("Aluno:"); nomeAluno = nextLine(); System.out.println("Ano:"); ano = Integer.parseInt(nextLine()); System.out.println("Nota:"); nota = Double.parseDouble(nextLine()); } Incorreta. Faltou identificar o objeto que executará o método nextLine(). Neste caso o objeto sc: (sc.nextLine()).
public void entradaDados() { Scanner sc = new Scanner(System.in); System.out.println("Aluno:"); nomeAluno = sc.nextLine(); System.out.println("Ano:"); ano = Double.parseDouble(sc.nextLine()); System.out.println("Nota:"); nota = Double.parseDouble(sc.nextLine()); } Incorreta. O atributo ano é do tipo int. Sendo assim, devemos utilizar a entrada da seguinte forma: Integer.parseInt(sc.nextLine()), ao invés de Double.parseDouble(sc.nextLine()), que é para entrada de valores reais.
public void entradaDados() { Scanner sc = new Scanner(System.in); System.out.println("Aluno:"); nomeAluno = sc.nextLine(); System.out.println("Ano:"); ano = sc.nextLine(); System.out.println("Nota:"); nota = sc.nextLine(); } Incorreta. Como os atributos ano e nota não são do tipo String, há necessidade de convertê-los para os seus respectivos tipos de dados apropriados, utilizando Integer.parseInt() e Double.parseDouble() respectivamente.
public void entradaDados() { Scanner sc = new Scanner(System.in); System.out.println("Aluno:"); nomeAluno = sc.nextLine(); System.out.println("Ano:"); ano = Integer.parseInt(sc.nextLine()); System.out.println("Nota:"); nota = Integer.parseInt(sc.nextLine()); } Como os atributos ano e Nota não são String, precisamos realizar a conversão de dados, utilizando Integer.parseInt() para o ano, uma vez que ano é do tipo inteiro e Double.parseDouble() para a nota, uma vez que nota não é inteiro, sendo um tipo real (double). No caso, ambos os atributos foram tratados como inteiros, o que está errado.
c) public void entradaDados() { Scanner sc = new Scanner(System.in); System.out.println("Aluno:"); nomeAluno = sc.nextLine(); System.out.println("Ano:"); ano = Integer.parseInt(sc.nextLine()); System.out.println("Nota:"); nota = Double.parseDouble(sc.nextLine()); }

Um desenvolvedor precisa criar uma aplicação financeira para uso com a conversão de valores entre reais e dólares. Sabe-se que o valor do dólar deve ser alterado durante a execução da aplicação, mas de forma que, ao se atualizar esse valor por meio de um objeto, todos os demais sejam atualizados conjuntamente. Para isso, é necessário definir o atributo como compartilhado.
Examine as opções de instruções a seguir e determine aquela que permite que seja definido um atributo cujo valor seja compartilhado, ou seja, ao ser atualizado o seu valor, todos os demais objetos criados a partir da classe na aplicação serão atualizados.
Resposta correta: public static double dolar = 4.125;. Um atributo é dito estático quando é compartilhado por todas as instâncias da classe, ou seja, seu conteúdo é compartilhado por todos os objetos criados e, quando um objeto realiza uma alteração, o valor é atualizado em todos os demais.
Distratores:
public final double dolar = 4.125;. Incorreta. Um atributo é dito final quando o seu valor, após ser inicializado, não pode mais ser alterado durante a execução da aplicação, o seu valor será constante.
public double dolar = 4.125;. Incorreta. Um atributo sem modificador pode ser alterado durante a execução da aplicação.
public abstract double dolar = 4.125;. Incorreta. Um atributo não pode receber o modificador abstract, que é utilizado apenas com métodos. Um método abstract é aquele que não é implementado em uma classe abstrata ou interface.
public const double dolar = 4.125;. Incorreta. O modificador const não faz parte da linguagem Java.
c) public static double dolar = 4.125;

Mais conteúdos dessa disciplina