1. ConversorMoeda e ConversaoFinanceira
// Interface
interface ConversaoFinanceira {
double converterDolarParaReal(double valorDolar);
}
// Implementação
class ConversorMoeda implements ConversaoFinanceira {
private static final double TAXA_CONVERSAO = 5.20; // Exemplo de taxa
@Override
public double converterDolarParaReal(double valorDolar) {
return valorDolar * TAXA_CONVERSAO;
}
}
2. CalculadoraSalaRetangular e CalculoGeometrico
// Interface
interface CalculoGeometrico {
double calcularArea();
double calcularPerimetro();
}
// Implementação
class CalculadoraSalaRetangular implements CalculoGeometrico {
private double altura;
private double largura;
public CalculadoraSalaRetangular(double altura, double largura) {
this.altura = altura;
this.largura = largura;
}
@Override
public double calcularArea() {
return altura * largura;
}
@Override
public double calcularPerimetro() {
return 2 * (altura + largura);
}
}
3. TabuadaMultiplicacao e Tabuada
// Interface
interface Tabuada {
void mostrarTabuada();
}
// Implementação
class TabuadaMultiplicacao implements Tabuada {
private int numero;
public TabuadaMultiplicacao(int numero) {
this.numero = numero;
}
@Override
public void mostrarTabuada() {
for (int i = 1; i <= 10; i++) {
System.out.println(numero + " x " + i + " = " + (numero * i));
}
}
}
4. ConversorTemperatura e ConversorTemperaturaPadrao
// Interface
interface ConversorTemperatura {
double celsiusParaFahrenheit(double celsius);
double fahrenheitParaCelsius(double fahrenheit);
}
// Implementação
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. Livro, ProdutoFisico e Calculavel
// Interface
interface Calculavel {
double calcularPrecoFinal();
}
// Livro
class Livro implements Calculavel {
private double preco;
private double desconto; // em porcentagem
public Livro(double preco, double desconto) {
this.preco = preco;
this.desconto = desconto;
}
@Override
public double calcularPrecoFinal() {
return preco - (preco * desconto / 100);
}
}
// Produto Físico
class ProdutoFisico implements Calculavel {
private double preco;
private double taxaFrete;
public ProdutoFisico(double preco, double taxaFrete) {
this.preco = preco;
this.taxaFrete = taxaFrete;
}
@Override
public double calcularPrecoFinal() {
return preco + taxaFrete;
}
}
6. Produto, Servico e Vendavel
// Interface
interface Vendavel {
double calcularPrecoTotal(int quantidade);
double aplicarDesconto(double percentual);
}
// Produto
class Produto implements Vendavel {
private double precoUnitario;
public Produto(double precoUnitario) {
this.precoUnitario = precoUnitario;
}
@Override
public double calcularPrecoTotal(int quantidade) {
return precoUnitario * quantidade;
}
@Override
public double aplicarDesconto(double percentual) {
return precoUnitario - (precoUnitario * percentual / 100);
}
}
// Serviço
class Servico implements Vendavel {
private double precoPorHora;
private int horasTrabalhadas;
public Servico(double precoPorHora, int horasTrabalhadas) {
this.precoPorHora = precoPorHora;
this.horasTrabalhadas = horasTrabalhadas;
}
@Override
public double calcularPrecoTotal(int quantidade) {
return precoPorHora * horasTrabalhadas;
}
@Override
public double aplicarDesconto(double percentual) {
double precoTotal = calcularPrecoTotal(horasTrabalhadas);
return precoTotal - (precoTotal * percentual / 100);
}
}