Black November

ATÉ 50% OFF

TÁ ACABANDO!

0 dias

0 horas

0 min

0 seg

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

Desafios: Interface 6

6.Crie uma interface Vendavel com métodos para calcular o preço total de um produto com base na quantidade comprada e aplicar descontos. Implemente essa interface nas classes Produto e Servico, cada uma fornecendo a sua própria lógica de cálculo de preço.

Vendavel

public interface Vendavel {

    double precoFinal(int quantidade);
    void aplicarDesconto(double percentual, int quantidade);
}

Serviço

public class Servico implements Vendavel {
    private String descricao;
    private double precoPorHora;

    public Servico(String descricao, double precoPorHora) {
        this.descricao = descricao;
        this.precoPorHora = precoPorHora;
    }

    public String getDescricao() {
        return descricao;
    }

    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

    public double getPrecoPorHora() {
        return precoPorHora;
    }

    public void setPrecoPorHora(double precoPorHora) {
        this.precoPorHora = precoPorHora;
    }

    @Override
    public double precoFinal(int horas) {
        return precoPorHora * horas;
    }

    @Override
    public void aplicarDesconto(double percentual, int horas) {
        if (horas > 5) {
            double desconto = precoPorHora * (percentual / 100);
            precoPorHora -= desconto;
        }
    }
}

Produto

public class Produto implements Vendavel {
    private String nome;
    private double precoUnitario;

    public Produto(String nome, double precoUnitario) {
        this.nome = nome;
        this.precoUnitario = precoUnitario;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public double getPrecoUnitario() {
        return precoUnitario;
    }

    public void setPrecoUnitario(double precoUnitario) {
        this.precoUnitario = precoUnitario;
    }

    @Override
    public double precoFinal(int quantidade) {
        return precoUnitario * quantidade;
    }

    @Override
    public void aplicarDesconto(double percentual, int quantidade) {
        if (quantidade > 10) {
            double desconto = precoUnitario * (percentual / 100);
            precoUnitario -= desconto;
        }
    }
}

Main

public class Main {
    public static void main(String[] args) {
        Produto produto = new Produto("Notebook", 3000.0);
        System.out.println("Preço do produto por unidade: R$" + produto.precoFinal(1));
        produto.aplicarDesconto(10, 15);
        System.out.println("Preço final do produto após desconto (15 unidades): R$" + produto.precoFinal(15));

        Servico servico = new Servico("Desenvolvimento de Software", 150.0);
        System.out.println("Preço do serviço por hora: R$" + servico.precoFinal(1));
        servico.aplicarDesconto(10, 6);
        System.out.println("Preço final do serviço após desconto (6 horas): R$" + servico.precoFinal(6));
    }
}

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta
solução!

Oi, Kevin! Como vai?

Agradeço por compartilhar.

Gostei da forma como você estruturou a interface Vendavel e aplicou lógicas diferentes para Produto e Servico.

Continue evoluindo desse jeito.

Como dica, teste valores diferentes de quantidade para visualizar rapidamente quando o desconto é aplicado e garantir que o cálculo final faça sentido para cada cenário.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!