1
resposta

Resolução

Compartilhando as minhas respostas.

/**
 * 1. Crie uma classe ConversorMoeda que implementa uma interface ConversaoFinanceira
 * com o método converterDolarParaReal() para converter um valor em dólar para reais.
 * A classe deve receber o valor em dólar como parâmetro.
 */

package desafios.desafio04;

public class ConversorMoeda implements ConversaoFinanceira {

    @Override
    public double converterDolarParaReal(double valorEmDolar) {
        double cotacao = 5.54; //cotação do dia 20/12/2025
        double valorEmReais = valorEmDolar * cotacao;
        return valorEmReais;
    }

}

package desafios.desafio04;

public interface ConversaoFinanceira {

    double converterDolarParaReal(double valorEmDolar);

}
/**
 * 2. Crie uma classe CalculadoraSalaRetangular que implementa uma interface CalculoGeometrico com os
 * métodos calcularArea() e calcularPerimetro() para calcular a área e o perímetro de uma sala retangular.
 * A classe deve receber altura e largura como parâmetros.
 */

package desafios.desafio04;

public class CalculadoraSalaRetangular implements CalculoGeometrico {

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

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

package desafios.desafio04;

public interface CalculoGeometrico {

    double calcularArea(double altura, double largura);
    double calcularPerimetro(double altura, double largura);

}
/**
 * 3. Crie uma classe TabuadaMultiplicacao que implementa uma interface Tabuada com o método mostrarTabuada() para
 * exibir a tabuada de um número. A classe deve receber o número como parâmetro.
 */

package desafios.desafio04;

public class TabuadaMultiplicacao implements Tabuada {

    @Override
    public void mostrarTabuada(int numero) {
        System.out.println("Tabudade de " + numero);
        for (int i = 1; i <= 10; i++) {
            System.out.printf("%d x %d = %d\n", numero, i, numero * i);
        }
    }
}

package desafios.desafio04;

public interface Tabuada {

    void mostrarTabuada(int numero);

}
/**
 * 4. Crie uma interface ConversorTemperatura com os métodos celsiusParaFahrenheit()
 * e fahrenheitParaCelsius(). Implemente uma classe ConversorTemperaturaPadrao
 * que implementa essa interface com as fórmulas de conversão e exibe os resultados.
 */

package desafios.desafio04;

public class ConversorTemperaturaPadrao implements ConversorTemperatura {

    @Override
    public double celsiusParaFahrenheit(double celsius) {
        return celsius * 1.8 + 32;
    }

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

package desafios.desafio04;

public interface ConversorTemperatura {

    double celsiusParaFahrenheit(double celsius);
    double fahrenheitParaCelsius(double fahrenheit);

}
/**
 * 5. Crie uma interface Calculavel com um método double calcularPrecoFinal().
 * Implemente essa interface nas classes Livro e ProdutoFisico, cada
 * uma retornando o preço final considerando descontos ou taxas adicionais.
 */

package desafios.desafio04;

public interface Calculavel {

    double calcularPrecoFinal();

}

package desafios.desafio04;

public class Livro extends ProdutoFisico implements Calculavel {

    @Override
    public double calcularPrecoFinal() {
        double valorTaxa = preco * (taxa / 100);
        double valorDesconto = preco * (desconto / 100);
        double precoFinal = preco + valorTaxa - valorDesconto;
        return precoFinal;
    }

}

package desafios.desafio04;

public class ProdutoFisico implements Calculavel {

    protected double preco;
    protected double desconto;
    protected double taxa;

    @Override
    public double calcularPrecoFinal() {
        double valorTaxa = preco * (taxa / 100);
        double precoFinal = preco + valorTaxa;
        return precoFinal;
    }

}

Continuando nos comentários...

1 resposta
/**
 * 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.
 */

package desafios.desafio04;

public interface Vendavel {

    double calcularPrecoTotal(double preco, int quantidade);

}

package desafios.desafio04;

public class Servico implements Vendavel {

    @Override
    public double calcularPrecoTotal(double preco, int quantidade) {
        double desconto = 0;
        if (preco > 999.99) {
            desconto = 100.00;
        } else if (preco > 499.99) {
            desconto = 50.00;
        } else if (preco > 299.99) {
            desconto = 30.00;
        }
        double precoTotal = preco * quantidade - desconto;
        return precoTotal;
    }
}

package desafios.desafio04;

public class Produto implements Vendavel {

    @Override
    public double calcularPrecoTotal(double preco, int quantidade) {
        double desconto = 0;
        if (quantidade > 14) {
            desconto = 10.0 / 100;
        } else if (quantidade > 9) {
            desconto = 5.0 / 100;
        } else if (quantidade > 4) {
            desconto = 2.0 / 100;
        }
        double precoTotal = preco * quantidade;
        double precoTotalComDesconto = precoTotal - (precoTotal * desconto);
        return precoTotalComDesconto;
    }

}

Insira aqui a descrição dessa imagem para ajudar na acessibilidade