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...