1
resposta

04.Aplicando comportamentos em comum. Desafio: hora da prática

// Interface
public interface ConversaoFinanceira {
    double converterParaReal();
    double converterParaDolar();
    double converterParaReal(double valorEmDolar);
}

// Classe que implementa a interface
public class ConversorMoeda implements ConversaoFinanceira {
    private double valorEmDolar;
    private double cotacaoDolar;
    private double valorEmReal;

    public ConversorMoeda(double valorEmDolar, double cotacaoDolar) {
        this.valorEmDolar = valorEmDolar;
        this.cotacaoDolar = cotacaoDolar;
        this.valorEmReal = valorEmDolar * cotacaoDolar;
    }

    @Override
    public double converterParaReal() {
        return this.valorEmReal;
    }

    @Override
    public double converterParaDolar() {
        return this.valorEmDolar;
    }

    @Override
    public double converterParaReal(double valorEmDolar) {
        return valorEmDolar * this.cotacaoDolar;
    }
}
// Interface com nome corrigido
public interface CalculoGeometrico {
    double calcularArea(double base, double altura);
    double calcularPerimetro(double base, double altura);
}

// Classe que implementa a interface
public class CalculadoraSalaRetangular implements CalculoGeometrico {
    @Override
    public double calcularArea(double base, double altura) {
        return base * altura;
    }

    @Override 
    public double calcularPerimetro(double base, double altura) {
        return 2 * (base + altura);
    }
}
// Interface Tabuada
public interface Tabuada {
    int multiplicar(int a, int b);
}

// Classe que implementa Tabuada
public class TabuadaMultiplicacao implements Tabuada {
    private int numero;

    public TabuadaMultiplicacao(int numero) {
        this.numero = numero;
    }

    @Override
    public int multiplicar(int a, int b) {
        return a * b;
    }

    public void mostrarTabuada() {
        System.out.println("Tabuada do " + numero + ":");
        for (int i = 1; i <= 10; i++) {
            System.out.println(numero + " x " + i + " = " + multiplicar(numero, i));
        }
    }

    public static void main(String[] args) {
        // Exibindo tabuadas de 1 a 10
        for (int i = 1; i <= 10; i++) {
            TabuadaMultiplicacao tabuada = new TabuadaMultiplicacao(i);
            tabuada.mostrarTabuada();
            System.out.println(); // Linha em branco entre as tabuadas
        }
    }
}
public interface ConversorTemperatura {
    double celsiusParaFahrenheit(double celsius);
    double fahrenheitParaCelsius(double fahrenheit);
}
public 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;
    }

    public void exibirConversoes(double celsius, double fahrenheit) {
        System.out.println(celsius + "°C em Fahrenheit: " + celsiusParaFahrenheit(celsius) + "°F");
        System.out.println(fahrenheit + "°F em Celsius: " + fahrenheitParaCelsius(fahrenheit) + "°C");
    }

    public static void main(String[] args) {
        ConversorTemperaturaPadrao conversor = new ConversorTemperaturaPadrao();

        // Exemplos de conversão
        conversor.exibirConversoes(25, 77); // 25°C e 77°F
    }
1 resposta

Oi, Gabrielly! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Você organizou muito bem a lógica com uso de interfaces, o que mostra domínio da ideia de comportamentos em comum na Orientação a Objetos. Destaque para a TabuadaMultiplicacao, que ficou super didática!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!