1
resposta

[Sugestão] [Sugestão] Vendavel

package br.com.alura.projeto.venda.vendavel;


public interface Vendavel {
   double calcularPrecoTotal();
   double aplicarDesconto();
   double percentualDesconto();
}
=================================================
package br.com.alura.projeto.venda.produto;

import br.com.alura.projeto.venda.vendavel.Vendavel;

public class Produto implements Vendavel {
    private double precoUnidade;
    private int quantidade;
    private String nome;

    public String getNome() {
        return nome;
    }

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

    public double getPrecoUnidade() {
        return precoUnidade;
    }

    public void setPrecoUnidade(double precoUnidade) {
        this.precoUnidade = precoUnidade;
    }

    public int getQuantidade() {
        return quantidade;
    }

    public void setQuantidade(int quantidade) {
        this.quantidade = quantidade;
    }

    @Override
    public double calcularPrecoTotal() {
      double valorTotal = quantidade * precoUnidade - aplicarDesconto();
      return valorTotal;
    }


    @Override
    public double aplicarDesconto() {
        double desconto = precoUnidade * percentualDesconto();
        return desconto;
    }

    @Override
    public double percentualDesconto() {
        double percentual = 0.35;
        return percentual;
    }
}
========================================================
package br.com.alura.projeto.venda.servico;

import br.com.alura.projeto.venda.vendavel.Vendavel;


public class Servico implements Vendavel {
        private String nome;
        private double precoPorServico;
        private double precoHora;


    public double getPrecoHora() {
        return precoHora;
    }

    public void setPrecoHora(double precoHora) {
        this.precoHora = precoHora;
    }

    public String getNome() {
        return nome;
    }

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

    public double getPrecoPorServico() {
        return precoPorServico;
    }

    public void setPrecoPorServico(double precoPorServico) {
        this.precoPorServico = precoPorServico;
    }

    @Override
    public double calcularPrecoTotal() {
        double valorTotal = precoPorServico - aplicarDesconto();
        return valorTotal;
    }

    @Override
    public double aplicarDesconto() {
        double desconto = precoHora * percentualDesconto();
        return desconto;
    }

    @Override
    public double percentualDesconto() {
        double percentual = 0.10;
        return percentual;
    }
}
===========================================================
package br.com.alura.projeto.venda.teste;

import br.com.alura.projeto.venda.produto.Produto;
import br.com.alura.projeto.venda.servico.Servico;

public class teste {
    public static void main(String[] args) {
        Produto produto = new Produto();
        produto.setNome("Arroz");
        produto.setPrecoUnidade(5.45);
        produto.setQuantidade(2);
        System.out.println("===============================================================");
        System.out.println("Nome do Produto: " + produto.getNome());
        System.out.println("Preco por unidade: " + produto.getPrecoUnidade());
        System.out.println("Quantidade: " + produto.getQuantidade());
        System.out.println("Percentual Descontado: " + produto.percentualDesconto() + "%");
        System.out.println("Desconto: " + produto.aplicarDesconto());
        System.out.println("Total: " + produto.calcularPrecoTotal());
        System.out.println("===============================================================");

        Servico servico = new Servico();
        servico.setPrecoPorServico(10);
        servico.setPrecoHora(5);
        servico.setNome("Entrega");
        System.out.println("===============================================================");
        System.out.println("Servico: " + servico.getNome());
        System.out.println("Preco por servico: " + servico.getPrecoPorServico());
        System.out.println("Preco por hora: " + servico.getPrecoHora());
        System.out.println("Percentual Descontado: " + servico.percentualDesconto() + "%");
        System.out.println("Desconto: " + servico.aplicarDesconto());
        System.out.println("Total: " + servico.calcularPrecoTotal());
        System.out.println("===============================================================");

    }
}

OBS: quebrei tanta a cabeca 6 horas da manha que esse codigo valeu pelo esforco e aceito sugestoes de onde posso melhorar!

1 resposta

Estou aprendendo também e reconheço que não é fácil escrever um código desse nível para quem está no início.