Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Desafio: hora da prática] Está correto?

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 Desafio01;

public class ConversorMoeda implements ConversaoFinanceira {
    private double real = 5.49;

    public void setReal(double real) {
        this.real = real;
    }

    public double getReal() {
        return real;
    }

    @Override
    public double converterDolarParaReal(double dolar) {
        double valorConvertido = real * dolar;
        return valorConvertido;
    }

    public static void main(String[] args) {
        ConversorMoeda operacao = new ConversorMoeda();

        System.out.println(operacao.converterDolarParaReal(1));
        System.out.println(operacao.converterDolarParaReal(5));
        System.out.println(operacao.converterDolarParaReal(10));
        System.out.println(operacao.converterDolarParaReal(50));
    }
}
package Desafio01;

public interface ConversaoFinanceira {
    double converterDolarParaReal(double dolar);
}

Saída esperada:

5.49
27.450000000000003
54.900000000000006
274.5

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 Desafio02;

public class CalculadoraSalaRetangular implements CalculoGeometrico {
    @Override
    public int calcularArea(int altura, int largura) {
        int area = largura * altura;
        return area;
    }

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

    public static void main(String[] args) {
        CalculadoraSalaRetangular retangulo = new CalculadoraSalaRetangular();

        System.out.println(retangulo.calcularArea(2,3));
        System.out.println(retangulo.calcularPerimetro(7,10));
    }
}
package Desafio02;

public interface CalculoGeometrico {
    int calcularArea(int altura, int largura);
    int calcularPerimetro(int altura, int largura);

}

Saída esperada:

6
34

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 Desafio03;

public class TabuadaMultiplicacao implements Tabuada {
    @Override
    public void mostrarTabuada(int numero) {
        for (int i = 1; i <= 10; i++) {
            System.out.println(numero * i);
        }
    }

    public static void main(String[] args) {
        TabuadaMultiplicacao operacao = new TabuadaMultiplicacao();

       operacao.mostrarTabuada(7);
    }
}
package Desafio03;

public interface Tabuada {
    void mostrarTabuada(int numero);

}

Saída esperada:

7
14
21
28
35
42
49
56
63
70

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 Desafio04;

public class ConversorTemperaturaPadrao implements ConversorTemperatura {
    @Override
    public double celsiusParaFahrenheit(double celsius) {
        double resultado = (celsius * 1.8) + 32;
        return resultado;

    }

    @Override
    public double fahrenheitParaCelsius(double fahrenheit) {
        double resultado = (fahrenheit - 32) / 1.8;
        return resultado;

    }

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

        System.out.println(celParaFah.celsiusParaFahrenheit(15));
        System.out.println(celParaFah.celsiusParaFahrenheit(30));

        System.out.println(fahParaCel.fahrenheitParaCelsius(59));
        System.out.println(fahParaCel.fahrenheitParaCelsius(86));
    }
}
package Desafio04;

public interface ConversorTemperatura {
    double celsiusParaFahrenheit(double celsius);
    double fahrenheitParaCelsius(double fahrenheit);

}

Saída esperada:

59.0
86.0
15.0
30.0
2 respostas

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 Desafio05;

public class Livro implements Calculavel {
    @Override
    public double calcularPrecoFinal(double valor) {
        double valorImposto = valor * taxaAdicional / 100;
        double precoFinal = valor * (1 + taxaAdicional / 100);
        return precoFinal;
    }

    public static void main(String[] args) {
        Livro olhosPrateados = new Livro();
        Livro intoThePit = new Livro();

        System.out.println(olhosPrateados.calcularPrecoFinal(40.18));
        System.out.println(intoThePit.calcularPrecoFinal(61.78));
    }
}
package Desafio05;

public class ProdutoFisico implements Calculavel {
    @Override
    public double calcularPrecoFinal(double valor) {
        double valorImposto = valor * taxaAdicional / 100;
        double precoFinal = valor * (1 + taxaAdicional / 100);
        return precoFinal;
    }

    public static void main(String[] args) {
        ProdutoFisico mouse = new ProdutoFisico();
        ProdutoFisico monitor = new ProdutoFisico();

        System.out.println(mouse.calcularPrecoFinal(332.91));
        System.out.println(monitor.calcularPrecoFinal(1059.99));
    }
}
package Desafio05;

public interface Calculavel {
    double taxaAdicional = 15;

    double calcularPrecoFinal(double valor);

}

Saída esperada 'Livro':

46.206999999999994
71.047

Saída esperada 'ProdutoFisico':

382.8465
1218.9885

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 Desafio06;

public class Produto implements Vendavel {
    @Override
    public double desconto(double valor) {
        double precoComDesconto = valor * (1 - desconto / 100);
        return precoComDesconto;
    }

    @Override
    public double precoTotalPorQuantidade(double valor, double quantidade) {
        double precoTotal = valor * quantidade;
        return precoTotal;
    }

    public static void main(String[] args) {
        Produto headset = new Produto();
        Produto pacoca = new Produto();

        System.out.println(headset.desconto(100));
        System.out.println(pacoca.desconto(2.50));

        System.out.println(headset.precoTotalPorQuantidade(100, 3));
        System.out.println(headset.precoTotalPorQuantidade(2.50, 2));
    }
}
package Desafio06;

public class Servico implements Vendavel {
    protected double horasTrabalhadas = 8;

    @Override
    public double desconto(double valor) {
        double desconto = horasTrabalhadas * valor / 100;
        return desconto;
    }

    @Override
    public double precoTotalPorQuantidade(double valor, double quantidade) {
        //Neste caso, a 'quantidade' será referente as horas trabalhadas
        double precoHoras = valor * quantidade;
        return precoHoras;
    }

    public static void main(String[] args) {
        Servico exemplo1 = new Servico();

        System.out.println(exemplo1.desconto(8.50));
        System.out.println(exemplo1.precoTotalPorQuantidade(8.50, 8));
    }
}
package Desafio06;

public interface Vendavel {
    double desconto = 10;

    double desconto(double valor);
    double precoTotalPorQuantidade(double valor, double quantidade);
}

Saída esperada 'Produto':

90.0
2.25
300.0
5.0

Saída esperada 'Servicos':

0.68
68.0
solução!

Oi, Luiz! Tudo bem?

Boa! Ótimos códigos, parabéns pela dedicação e elaboração deles! Obrigada também por tê-los compartilhado com a nossa comunidade do fórum, tenho certeza que ajudará muitos colegas! Caso surja alguma dúvida, sinta-se à vontade em comunicar por aqui, estou à disposição e ficarei super feliz em poder ajudar!

Um forte abraço e bons estudos!