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!