3
respostas

[Projeto] Resolução

Abaixo minhas resoluções, no qual encontrei alguns problemas no exercício 6 no momento de instanciar, portanto fiz algumas alterações e abaixo tem a minha resolução com as classes e a execução no MainExercicio.

1 - ConversaoFinanceira

package Exercicios.Aula4.Exercicio1;

public interface ConversaoFinanceira {

    double converterDolarParaReal();
}

1 - ConversorMoeda

package Exercicios.Aula4.Exercicio1;

public class ConversorMoeda implements ConversaoFinanceira {

    private double dolar;
    private double cotacao;

    public ConversorMoeda(double dolar) {

        this.dolar = dolar;
        this.cotacao = 6.0;
    }

    @Override
    public double converterDolarParaReal() {
        return dolar * cotacao;
    }
}

2 - CalculoGeometrico

package Exercicios.Aula4.Exercicio2;

public interface CalculoGeometrico {

    double calcularArea();
    double calcularPerimetro();
}

2 - CalculadoraSalaRetangular

package Exercicios.Aula4.Exercicio2;

public class ClaculadoraSalaRetangular implements CalculoGeometrico {

    private double largura;
    private double comprimento;

    public ClaculadoraSalaRetangular(double largura, double comprimento) {
        this.largura = largura;
        this.comprimento = comprimento;
    }

    @Override
    public double calcularArea() {
        return largura * comprimento;
    }

    @Override
    public double calcularPerimetro() {
        return 2 * (largura + comprimento);
    }
}

3 - Tabuada

package Exercicios.Aula4.Exercicio3;

public interface Tabuada {

    void mostrarTabuada(int numero);
}

3 - TabuadaMultiplicacao

package Exercicios.Aula4.Exercicio3;

public class TabuladaMultiplicacao implements Tabuada {

    private int numero;

    @Override
    public void mostrarTabuada(int numero) {

        System.out.println("Tabuada de multiplicação do número " + numero + ":");

        for (int i = 1; i <= 10; i++) {
            System.out.println(numero + " x " + i + " = " + (numero * i));
        }
    }
}

4 - ConversorTemperatura

package Exercicios.Aula4.Exercicio4;

public interface ConversorTemperatura {

    double celsiusParaFahrenheit(double celsius);
    double fahrenheitParaCelsius(double fahrenheit);
}

4 - ConversorTemperaturaPadrao

package Exercicios.Aula4.Exercicio4;

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

5 - Calculavel (Não entendi ao certo este exercício, portanto fui de acordo com a dica)

package Exercicios.Aula4.Exercicio5;

public interface Calculavel {

    double calcularPrecoFinal();

}

5 - Item (Classe extra para instanciar o objeto)

package Exercicios.Aula4.Exercicio5;

public class Item {

    private double preco;

    public double getPreco() {
        return preco;
    }

    public void setPreco(double preco) {
        this.preco = preco;
    }
}

5 - Livro

package Exercicios.Aula4.Exercicio5;

public class Livro extends Item implements Calculavel {

    public double calcularPrecoFinal() {
        return getPreco() * 0.95;
    }

}

5 - ProdutoFisico

package Exercicios.Aula4.Exercicio5;

public class ProdutoFisico extends Item implements Calculavel {

    public double calcularPrecoFinal() {
        return getPreco() * 1.05;
    }
}

6 - Vendavel (Aqui minha adição da quantidade no método do desconto, pois da forma que estava, ele não funcionaria direito com mais de um item)

package Exercicios.Aula4.Exercicio6;

public interface Vendavel {

    double calcularPrecoTotal(int quantidade);
    double aplicarDesconto(double percentual, int quantidade);
}
3 respostas

Continuação

6 - Produto

package Exercicios.Aula4.Exercicio6;

public class Produto implements Vendavel {

    private String nome;
    private double precoUnitario;

    public Produto(String nome, double precoUnitario) {

        this.nome = nome;
        this.precoUnitario = precoUnitario;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public double getPrecoUnitario() {
        return precoUnitario;
    }

    public void setPrecoUnitario(double precoUnitario) {
        this.precoUnitario = precoUnitario;
    }

    @Override
    public double calcularPrecoTotal(int quantidade) {
        return precoUnitario * quantidade;
    }

    @Override
    public double aplicarDesconto(double percentual, int quantidade) {
        double precoComDesconto = precoUnitario * (1 - percentual / 100.0);
        return precoComDesconto * quantidade;
    }
}

6 - Servico

package Exercicios.Aula4.Exercicio6;

public class Produto implements Vendavel {

    private String nome;
    private double precoUnitario;

    public Produto(String nome, double precoUnitario) {

        this.nome = nome;
        this.precoUnitario = precoUnitario;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public double getPrecoUnitario() {
        return precoUnitario;
    }

    public void setPrecoUnitario(double precoUnitario) {
        this.precoUnitario = precoUnitario;
    }

    @Override
    public double calcularPrecoTotal(int quantidade) {
        return precoUnitario * quantidade;
    }

    @Override
    public double aplicarDesconto(double percentual, int quantidade) {
        double precoComDesconto = precoUnitario * (1 - percentual / 100.0);
        return precoComDesconto * quantidade;
    }
}

Main

package Exercicios.Aula4;

import Exercicios.Aula4.Exercicio1.ConversorMoeda;
import Exercicios.Aula4.Exercicio2.ClaculadoraSalaRetangular;
import Exercicios.Aula4.Exercicio3.TabuladaMultiplicacao;
import Exercicios.Aula4.Exercicio4.ConversorTemperatura;
import Exercicios.Aula4.Exercicio4.ConversorTemperaturaPadrao;
import Exercicios.Aula4.Exercicio5.Livro;
import Exercicios.Aula4.Exercicio5.ProdutoFisico;
import Exercicios.Aula4.Exercicio6.Produto;
import Exercicios.Aula4.Exercicio6.Servico;

public class MainExercicios {

    public static void main(String[] args) {

        System.out.println("********** Exercício 1 **********");
        ConversorMoeda conversorMoeda = new ConversorMoeda(10);
        System.out.println("Valor em reais: " + conversorMoeda.converterDolarParaReal());

        System.out.println("\n********** Exercício 2 **********");
        ClaculadoraSalaRetangular salaRetangular = new ClaculadoraSalaRetangular(10, 5); // (largura, comprimento)
        System.out.println("Área: " + salaRetangular.calcularArea());
        System.out.println("Perímetro: " + salaRetangular.calcularPerimetro());

        System.out.println("\n********** Exercício 3 **********");
        TabuladaMultiplicacao tabuada = new TabuladaMultiplicacao();
        tabuada.mostrarTabuada(7);

        System.out.println("\n********** Exercício 4 **********");
        ConversorTemperatura conversorTemperatura = new ConversorTemperaturaPadrao();
        int celsius = 35;
        System.out.println("Celsius para Fahrenheit: " + conversorTemperatura.celsiusParaFahrenheit(celsius));
        int farhenheit = 77;
        System.out.println("Fahrenheit para Celsius: " + conversorTemperatura.fahrenheitParaCelsius(farhenheit));

        System.out.println("\n********** Exercício 5 **********");
        Livro livro = new Livro();
        livro.setPreco(100);
        System.out.println("Preço final do livro: " + livro.calcularPrecoFinal());
        ProdutoFisico livroFisico = new ProdutoFisico();
        livroFisico.setPreco(100);
        System.out.println("Preço final do livro físico: " + livroFisico.calcularPrecoFinal());

        System.out.println("\n********** Exercício 6 **********");
        Produto produto = new Produto("Produto", 100);
        int quantidade = 2;

        System.out.println("Preço total do produto: " + produto.calcularPrecoTotal(quantidade));
        System.out.println("Preço com desconto do produto: " + produto.aplicarDesconto(15, quantidade));

        Servico servico = new Servico("Serviço", 35);
        System.out.println("Preço total do serviço: " + servico.calcularPrecoTotal(quantidade));
        System.out.println("Preço com desconto do serviço: " + servico.aplicarDesconto(10, quantidade));
    }
}

Oi Gabriel,

Parabéns pela dedicação em resolver os exercícios e compartilhar seu código! 👏

Notei que você fez algumas adaptações interessantes, como adicionar a quantidade no método de desconto do exercício 6. 👍

No entanto, observei um pequeno problema na classe Servico do exercício 6: você a duplicou com a classe Produto. 🤔

Isso significa que a classe Servico não está implementando a lógica específica para um serviço, como você fez com o Produto.

🎓 Para saber mais: Interfaces em Java.

Continue praticando e explorando o mundo da programação! 💪

Achei o erro... copiei errado... Peguei do Github a versao correta para a classe Servico

package Exercicios.Aula4.Exercicio6;
public class Servico implements Vendavel {
    private String descricao;
    private double precoHora;
    public Servico(String descricao, double precoHora) {
        this.descricao = descricao;
        this.precoHora = precoHora;
    }
    public String getDescricao() {
        return descricao;
    }
    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }
    public double getPrecoHora() {
        return precoHora;
    }
    
    public void setPrecoHora(double precoHora) {
        this.precoHora = precoHora;
    }
    @Override
    public double calcularPrecoTotal(int quantidade) {
        return precoHora * quantidade;
    }
    @Override
    public double aplicarDesconto(double percentual, int quantidade) {
        double precoComDesconto = precoHora * (1 - percentual / 100.0);
        return precoComDesconto * quantidade;
    }