Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Dúvida exercício resolvido (Java: aplicando a Orientação a Objetos)

Olá instrutores, tudo bem?

Estou estudando o módulo 1 do curso, e fiquei com dúvida na questão da etapa 7: não entendi a justificativa da resposta. -código: Insira aqui a descrição dessa imagem para ajudar na acessibilidade-pergunta: "Escolha a alternativa que identifica corretamente qual o problema do método pegaPrecoFinal:" -resposta: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Procurei em outras perguntas do fórum, e pelo que eu entendi, como o método criado para a Classe Produto não foi feita utilizando a função "void", ela obrigatoriamente se tornou um método que retorna algo. Entendi certinho?

Eu acho bem diferente o Java das outras linguagem, pois até então para retornar uma informação ao usuário eu estava acostuada com a palavra chave "print", e aqui no java existem outras que retornam informação, mas com objetivos diferentes:

  • return : para a função armazenar o resultado produzido e ser printado posteriormente (acredito que eu to entendendo errado ainda o uso do return rsrs);
  • System.out.println: printar informação durante a execução do código;
  • conole.log: printa qualquer informação ou dado, mas é um uso mais de teste;

Até esse ponto do curso, o meu entendimento é o acima, e estou fazendo o meu melhor para não confndir as coisas mas a palavra chave return está sendo um pouquinho mais abstrata rsrs.

Obrigada pela atenção e uma ótima semana a todos!

1 resposta
solução!

Porque na assinatura do metodo ele colocou um tipo. Quando se coloca tipo, o compilador espera que voce retorne uma informação, do mesmo tipo do método.

double pegaPrecoFinal(boolean pagamentoPix) {
    if(pagamentoPix) {
        return preco - descontoParaPix;
    }
    return preco;
}

Nesse exercicio olhando esse codigo ele tem dois problemas.

1 - é o metodo que nao retorna valor.

2 - a viaravel descontoParaPix nao esta inicializada, entao haveria um erro de variable not initialized.