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

[Minha Solução] Desafio Criar Interface Calculavel

Desafio5: 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 {

    public double calcularPrecoFinal();
}

import java.util.Scanner;

public class Livro implements Calculavel {
    private String nome;
    private int quantidadePaginas;
    private double precoInicial;
    private double precoFinal;
    private double valorDesconto;

    Scanner sc = new Scanner(System.in);

    @Override
    public double calcularPrecoFinal() {
        this.setPrecoFinal(this.getPrecoInicial() - (this.getPrecoInicial() * 0.1));
        System.out.println("\n===== SAÍDA DADOS =====");
        System.out.println("Nome do livro: " + this.getNome());
        System.out.println("Quantidade de páginas: " + this.getQuantidadePaginas());
        System.out.println("Preço Inicial do Livro: R$ " + this.getPrecoInicial());
        this.setValorDesconto(this.getPrecoInicial() - this.getPrecoFinal());
        System.out.println("Valor do Desconto: R$ " + this.getValorDesconto());
        System.out.println("Valor final do Produto: R$ " + this.getPrecoFinal());
        return 0;
    }

    public void entrarDadosLivro() {
        System.out.println("\n===== LIVRO =====");
        System.out.println("Insira o nome do livro: ");
        this.setNome(sc.next());
        System.out.println("Insira a quantidade de páginas: ");
        this.setQuantidadePaginas(sc.nextInt());
        System.out.println("Insira o valor do livro: ");
        this.setPrecoInicial(sc.nextDouble());
        this.calcularPrecoFinal();
    }

    public String getNome() {
        return nome;
    }

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

    public int getQuantidadePaginas() {
        return quantidadePaginas;
    }

    public void setQuantidadePaginas(int quantidadePaginas) {
        this.quantidadePaginas = quantidadePaginas;
    }

    public double getPrecoInicial() {
        return precoInicial;
    }

    public void setPrecoInicial(double precoInicial) {
        this.precoInicial = precoInicial;
    }

    public double getPrecoFinal() {
        return precoFinal;
    }

    public void setPrecoFinal(double precoFinal) {
        this.precoFinal = precoFinal;
    }

    public double getValorDesconto() {
        return valorDesconto;
    }

    public void setValorDesconto(double valorDesconto) {
        this.valorDesconto = valorDesconto;
    }
}

import java.util.Scanner;

public class ProdutoFisico implements Calculavel{
    private String marcaVideoGame;
    private String modeloVideoGame;
    private double precoInicial;
    private double precoFinal;
    private double valorDesconto;

    Scanner sc = new Scanner(System.in);

    @Override
    public double calcularPrecoFinal() {
        this.setPrecoFinal(this.getPrecoInicial() - (this.getPrecoInicial() * 0.15));
        System.out.println("\n===== SAÍDA DADOS =====");
        System.out.println("Marca: " + this.getMarcaVideoGame());
        System.out.println("Modelo: " + this.getModeloVideoGame());
        System.out.println("Preço Inicial do Video Game: R$ " + this.getPrecoInicial());
        this.setValorDesconto(this.getPrecoInicial() - this.getPrecoFinal());
        System.out.println("Valor do Desconto: R$ " + this.getValorDesconto());
        System.out.println("Valor final do Produto: R$ " + this.getPrecoFinal());
        return 0;
    }

    public void entrarDadosVideoGame() {
        System.out.println("\n===== PRODUTO FISICO =====");
        System.out.println("\nInsira a marca do Video Game: ");
        this.setMarcaVideoGame(sc.next());
        System.out.println("Insira o modelo do Video Game: ");
        this.setModeloVideoGame(sc.next());
        System.out.println("Insira o preço do Video Game: ");
        this.setPrecoInicial(sc.nextDouble());
        this.calcularPrecoFinal();
    }

    public String getMarcaVideoGame() {
        return marcaVideoGame;
    }

    public void setMarcaVideoGame(String marcaVideoGame) {
        this.marcaVideoGame = marcaVideoGame;
    }

    public String getModeloVideoGame() {
        return modeloVideoGame;
    }

    public void setModeloVideoGame(String modeloVideoGame) {
        this.modeloVideoGame = modeloVideoGame;
    }

    public double getPrecoInicial() {
        return precoInicial;
    }

    public void setPrecoInicial(double precoInicial) {
        this.precoInicial = precoInicial;
    }

    public double getPrecoFinal() {
        return precoFinal;
    }

    public void setPrecoFinal(double precoFinal) {
        this.precoFinal = precoFinal;
    }

    public double getValorDesconto() {
        return valorDesconto;
    }

    public void setValorDesconto(double valorDesconto) {
        this.valorDesconto = valorDesconto;
    }
}

public class Principal {
    public static void main(String[] args) {
        Livro livro = new Livro();
        livro.entrarDadosLivro();
        ProdutoFisico produto = new ProdutoFisico();
        produto.entrarDadosVideoGame();
    }
}
2 respostas

Saída dados:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

solução!

Bom dia, Carlos! Tudo joia?

Dei uma olhada no seu código e ele está bem organizado e condizente com o que foi passado pelo instrutor, e isso mostra o seu comprometimento com o curso.

Caso surjam quaisquer dúvidas eu estarei à sua disposição.

Abraços e bons estudos!