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.
// Interface ConversorTemperatura
public interface ConversorTemperatura {
double celsiusParaFahrenheit(double temperaturaCelsius);
double fahrenheitParaCelsius(double temperaturaFahrenheit);
}
// Classe ConversorTemperaturaPadrao implementando ConversorTemperatura
public class ConversorTemperaturaPadrao implements ConversorTemperatura {
@Override
public double celsiusParaFahrenheit(double temperaturaCelsius) {
return (temperaturaCelsius * 9 / 5) + 32;
}
@Override
public double fahrenheitParaCelsius(double temperaturaFahrenheit) {
return (temperaturaFahrenheit - 32) * 5 / 9;
}
}
// Classe de Teste
public class TesteConversorTemperatura {
public static void main(String[] args) {
ConversorTemperatura conversor = new ConversorTemperaturaPadrao();
double temperaturaCelsius = 25;
double temperaturaFahrenheit = conversor.celsiusParaFahrenheit(temperaturaCelsius);
System.out.println(temperaturaCelsius + " Celsius é igual a " + temperaturaFahrenheit + " Fahrenheit.");
temperaturaFahrenheit = 77;
temperaturaCelsius = conversor.fahrenheitParaCelsius(temperaturaFahrenheit);
System.out.println(temperaturaFahrenheit + " Fahrenheit é igual a " + temperaturaCelsius + " Celsius.");
}
}
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.
public interface Calculavel {
double calcularPrecoFinal();
}
public class Livro extends Produto implements Calculavel {
private String autor;
public double calcularPrecoFinal() {
return preco * 0.9;
}
}
public class ProdutoFisico extends Produto implements Calculavel {
public double calcularPrecoFinal() {
// Implementação com taxas adicionais para produtos físicos
return preco * 1.05;
}
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.
// Interface Vendavel
public interface Vendavel {
double calcularPrecoTotal(int quantidade);
void aplicarDesconto(double percentualDesconto);
}
// Classe Produto
public class Produto implements Vendavel {
private String nome;
private double precoUnitario;
// Construtor e outros métodos
@Override
public double calcularPrecoTotal(int quantidade) {
return precoUnitario * quantidade;
}
@Override
public void aplicarDesconto(double percentualDesconto) {
precoUnitario -= precoUnitario * (percentualDesconto / 100.0);
}
}
// Classe Servico
public class Servico implements Vendavel {
private String descricao;
private double precoHora;
// Construtor e outros métodos
@Override
public double calcularPrecoTotal(int quantidade) {
return precoHora * quantidade;
}
@Override
public void aplicarDesconto(double percentualDesconto) {
precoHora -= precoHora * (percentualDesconto / 100.0);
}
}