Logo Passei Direto
Buscar
Um desenvolvedor precisa implementar os métodos de acesso da classe Treinamento, a qual possui os seguintes atributos: nomeAluno, ano e nota. Compare as possíveis soluções apresentadas a seguir e avalie qual é a correta para atender à implementação do método que permite realizar a atribuição e o armazenamento na memória da propriedade nota. Lembrando que a nota de um aluno precisa estar entre 0 e 10 para que seja armazenada no atributo; caso contrário, deverá armazenar o valor 0 (zero) no atributo.
Compare as possíveis soluções apresentadas a seguir e avalie qual é a correta para atender à implementação do método que permite realizar a atribuição e o armazenamento na memória da propriedade nota.
public void setNota(double n) { if(n >= 0 && n <= 10) { nota = n; } else { nota = 0; }}
public double setNota(double n) { if(n >= 0 && n <= 10) { return n; } else { return 0; }}
public void setNota(double n) { if(n <= 10) { nota = n; } else { nota = 0; }}
public void setNota(double n) { if(n >= 0 || n < 10) { nota = n; } else { nota = 0; }}
public void getNota(double n) { if(n >= 0 && n <= 10) { nota = n; } else { nota = 0; }}
User badge image
ComportamentoHumano360

há 4 meses

Respostas

User badge image

Ed Verified user icon

há 4 meses

Vamos analisar as alternativas para o método setNota que deve atribuir o valor à propriedade nota somente se estiver entre 0 e 10; caso contrário, atribui 0. 1) public void setNota(double n) { if(n >= 0 && n <= 10) { nota = n; } else { nota = 0; }} - Correto: verifica se n está entre 0 e 10 (inclusive) e atribui; caso contrário, atribui 0. Retorno void, adequado para método set. 2) public double setNota(double n) { if(n >= 0 && n <= 10) { return n; } else { return 0; }} - Incorreto: método set geralmente não retorna valor, e aqui não está atribuindo o valor ao atributo nota. 3) public void setNota(double n) { if(n <= 10) { nota = n; } else { nota = 0; }} - Incorreto: não verifica se n é maior ou igual a 0, pode aceitar valores negativos. 4) public void setNota(double n) { if(n >= 0 || n < 10) { nota = n; } else { nota = 0; }} - Incorreto: uso do operador lógico "||" (ou) está errado, sempre será verdadeiro, pois qualquer número é maior ou igual a 0 ou menor que 10. 5) public void getNota(double n) { if(n >= 0 && n <= 10) { nota = n; } else { nota = 0; }} - Incorreto: método get não deve modificar o valor, e o nome está errado para um setter. Resposta correta: public void setNota(double n) { if(n >= 0 && n <= 10) { nota = n; } else { nota = 0; }} (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