1
resposta

Desafio

1.ConversorMoeda:

public interface ConversaoFinanceira {
    double converterDolarParaReal(double valorDolar);
}

public class ConversorMoeda implements ConversaoFinanceira {

    @Override
    public double converterDolarParaReal(double valorDolar) {
        double taxaConversao = 5.00;
        return valorDolar * taxaConversao;
    }
}

2.CalculadoraSalaRetangular:

public interface CalculoGeometrico {
    double calcularArea();
    double calcularPerimetro();
}

public class CalculadoraSalaRetangular implements CalculoGeometrico{
    private double altura;
    private double largura;

    @Override
    public double calcularArea() {
        return altura * largura;
    }

    @Override
    public double calcularPerimetro() {
        return 2 * (altura + largura);
    }
}

3.Tabuada:

interface Tabuada {
    void mostrarTabuada();
}

class TabuadaMultiplicacao implements Tabuada {
    private int numero;

    @Override
    public void mostrarTabuada() {
        for (int i = 1; i <= 10; i++) {
            System.out.println(numero + " x " + i + " = " + (numero * i));
        }
    }
}

4.ConversorTemperatura:

interface ConversorTemperatura {
    double celsiusParaFahrenheit(double celsius);
    double fahrenheitParaCelsius(double fahrenheit);
}

class ConversorTemperaturaPadrao implements ConversorTemperatura {

    @Override
    public double celsiusParaFahrenheit(double celsius) {
        return (celsius * 9/5) + 32;
    }

    @Override
    public double fahrenheitParaCelsius(double fahrenheit) {
        return (fahrenheit - 32) * 5/9;
    }
}

5.Calculavel:

interface Calculavel {
    double calcularPrecoFinal();
}

class Livro implements Calculavel {
    private double preco;
    private double desconto;

    public Livro(double preco, double desconto) {
        this.preco = preco;
        this.desconto = desconto;
    }

    @Override
    public double calcularPrecoFinal() {
        return preco - (preco * desconto / 100);
    }
}

class ProdutoFisico implements Calculavel {
    private double preco;
    private double taxaAdicional;

    public ProdutoFisico(double preco, double taxaAdicional) {
        this.preco = preco;
        this.taxaAdicional = taxaAdicional;
    }

    @Override
    public double calcularPrecoFinal() {
        return preco + (preco * taxaAdicional / 100);
    }
}

6.Vendavel:

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

class Produto implements Vendavel {
    private double preco;

    public Produto(double preco) {
        this.preco = preco;
    }

    @Override
    public double calcularPrecoTotal(int quantidade) {
        return preco * quantidade;
    }

    @Override
    public double aplicarDesconto(double percentualDesconto) {
        return preco - (preco * percentualDesconto / 100);
    }
}

class Servico implements Vendavel {
    private double precoHora;
    private int horas;

    public Servico(double precoHora, int horas) {
        this.precoHora = precoHora;
        this.horas = horas;
    }

    @Override
    public double calcularPrecoTotal(int quantidade) {
        return precoHora * horas * quantidade;
    }

    @Override
    public double aplicarDesconto(double percentualDesconto) {
        double precoTotal = precoHora * horas;
        return precoTotal - (precoTotal * percentualDesconto / 100);
    }
}
1 resposta

Oi, Rodrigo! Tudo bem?

Ótimo trabalho implementando as interfaces e as classes conforme solicitado! Caso surja alguma dúvida, sinta-se à vontade em comunicar por aqui, estou à disposição e ficarei super feliz em poder ajudar!

Um forte abraço e bons estudos!