Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

AINDA ESTOU CONFUSA NO DESAF. 5 - DESAFIO 5;6-DIFICEIS -ENVIEM OS CÓDIGOS COMPLETOS POR FAVOR

Olá, peço por gentileza pra enviar os códigos completos dos desafios 5 e 6 (classes, interface e principal). Estão dificeis de entender pois sem prática anterior nesse assunto nem todos conseguem imaginar o que pode faltar para completar a 'idéia' do exercicio. Até tentei algumas vezes mas não foi possível e assim, se demorar muito de entender vou ficar parada no curso e quero avançar. Agradeço a compreensão.

4 respostas

Olá, Ana! Tudo bem?

Sei bem que os desafios às vezes possam parecer complicados, especialmente se você está começando com a orientação a objetos e interfaces em Java.

Vou tentar te ajudar com um exemplo simplificado para cada um dos desafios, mas lembre-se de tentar adaptá-los e expandi-los conforme o pedido no curso.

  1. Para o desafio 5:

    Interface:

    public interface Calculavel {
        double calcularPrecoFinal();
    }
    

    Classes:

    public class Livro implements Calculavel {
        private double precoBase;
        private double desconto;
    
        public Livro(double precoBase, double desconto) {
            this.precoBase = precoBase;
            this.desconto = desconto;
        }
    
        @Override
        public double calcularPrecoFinal() {
            return precoBase - (precoBase * desconto / 100);
        }
    }
    
    public class ProdutoFisico implements Calculavel {
        private double precoBase;
        private double taxaAdicional;
    
        public ProdutoFisico(double precoBase, double taxaAdicional) {
            this.precoBase = precoBase;
            this.taxaAdicional = taxaAdicional;
        }
    
        @Override
        public double calcularPrecoFinal() {
            return precoBase + taxaAdicional;
        }
    }
    
  2. Para o desafio 6:

    Interface:

    public interface Vendavel {
        double calcularPrecoTotal(int quantidade);
        double aplicarDesconto(double desconto);
    }
    

    Classes:

    public class Produto implements Vendavel {
        private double precoUnitario;
    
        public Produto(double precoUnitario) {
            this.precoUnitario = precoUnitario;
        }
    
        @Override
        public double calcularPrecoTotal(int quantidade) {
            return precoUnitario * quantidade;
        }
    
        @Override
        public double aplicarDesconto(double desconto) {
            return precoUnitario - (precoUnitario * desconto / 100);
        }
    }
    
    public class Servico implements Vendavel {
        private double precoBase;
        private double taxaServico;
    
        public Servico(double precoBase, double taxaServico) {
            this.precoBase = precoBase;
            this.taxaServico = taxaServico;
        }
    
        @Override
        public double calcularPrecoTotal(int quantidade) {
            return (precoBase + taxaServico) * quantidade;
        }
    
        @Override
        public double aplicarDesconto(double desconto) {
            double precoComTaxa = precoBase + taxaServico;
            return precoComTaxa - (precoComTaxa * desconto / 100);
        }
    }
    

Esses exemplos são simplificados e você pode precisar ajustá-los. Além disso, não se esqueça de verificar a seção “Ver opinião do instrutor” no seu curso para mais orientações e exemplos.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Olá Armano, Agradeço o envio dos códigos, mas confesso que o desafio 5 ainda me causa confusão pois o exemplo do instrutor, se estou entendendo um pouco, pede pra criar mais uma classe (Produto). Como no seu exemplo eu não vejo essa classe, peço por favor que me oriente. Obrigada de novo. Exemplo do instrutor:

public interface Calculavel {
    double calcularPrecoFinal();}
    public class Livro extends Produto implements Calculavel {
    private String autor;
    
    public double calcularPrecoFinal() {
            return preco * 0.9; 
        }
}
public class ProdutoFisico extends Produto implements Calculavel {
    public double calcularPrecoFinal() {
        // Implementação com taxas adicionais para produtos físicos
        return preco * 1.05; 
    }  

Bom dia! Tudo bem?

Os códigos que enviei são uma forma de solução para que você tenha como parâmetro quando fosse tentar, e a solução do instrutor também serve da mesma forma, pois existem formas diferentes que você pode resolver um mesmo problema.

Mas, recomendo que use como parâmetro mesmo o código disponibilizado pelo instrutor, já que elenca o nível de informações que você está vendo agora.

Espero ter esclarecido essa questão, caso tenha mais dúvidas estarei à disposição.

solução!

Olá Armano,

Agradeço de novo o retorno. Encontrei também um exemplo de um colega na postagem de outro aluno, o qual achei um pouco mais simples pra mim. Estou analisando com calma e tentando entender. Abraços.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software