1
resposta

[Projeto] Desafio: hora da Pratica

import br.com.biblioteca.Livro;
import br.com.biblioteca.ProdutoFisico;


//TIP To <b>Run</b> code, press <shortcut actionId="Run"/> or
// click the <icon src="AllIcons.Actions.Execute"/> icon in the gutter.
public class Main {
    public static void main(String[] args) {
        //TIP Press <shortcut actionId="ShowIntentionActions"/> with your caret at the highlighted text
        Livro item1 = new Livro();
        ProdutoFisico item2 = new ProdutoFisico();

        item1.setPrecoLivro(55);
        item2.setPrecoProduto(100);

        System.out.println("Livro");
        item1.calcularPrecoFinal();
        System.out.println("Produto Fisico");
        item2.calcularPrecoFinal();
    }
}
package br.com.biblioteca;

import br.com.interfaces.livros.Calculavel;

public class Livro implements Calculavel {
    private double precoLivro;
    private double desconto = 10;
    private double taxa = 5;

    public double getPrecoLivro() {
        return precoLivro;
    }

    public void setPrecoLivro(double precoLivro) {
        this.precoLivro = precoLivro;
    }

    @Override
    public double calcularPrecoFinal(){
       if(precoLivro >= 50){
           precoLivro = precoLivro - (precoLivro * desconto /100);
           System.out.println("Com desconto ficou: " + precoLivro);
       }else{
           precoLivro += taxa;
           System.out.println("Com a taxa: " + precoLivro);
       }



        return precoLivro;
    }
}
package br.com.biblioteca;

import br.com.interfaces.livros.Calculavel;

public class ProdutoFisico implements Calculavel {
    private double precoProduto;
    private double desconto = 10;
    private double taxa = 50;

    public double getPrecoProduto() {
        return precoProduto;
    }

    public void setPrecoProduto(double precoProduto) {
        this.precoProduto = precoProduto;
    }

    @Override
    public double calcularPrecoFinal(){




        if(precoProduto >= 1000){
            precoProduto = precoProduto - (precoProduto * desconto /100);
            System.out.println("Com desconto ficou: " + precoProduto);
        }else{
            precoProduto += taxa;
            System.out.println("Com a taxa: " + precoProduto);
        }



        return precoProduto;
    }
}
package br.com.interfaces.livros;

public interface Calculavel {
    double calcularPrecoFinal();
}
1 resposta

Oi, Alvaro! Como vai?

Agradeço por compartilhar.

Gostei da sua implementação do desafio, utilizando interface para definir o comportamento comum entre Livro e ProdutoFisico. Sua solução mostra bem o conceito de polimorfismo e reutilização de comportamento, já que ambos implementam o método calcularPrecoFinal(), mas cada classe aplica suas próprias regras de cálculo. Também ficou claro o uso de condições para aplicar desconto ou taxa, o que demonstra boa compreensão da lógica proposta na atividade.

Continue praticando esses conceitos de Orientação a Objetos, pois entender bem interfaces e implementação de comportamentos em comum ajuda bastante na organização do código em projetos maiores. Dica: você pode testar valores diferentes no main, criando mais objetos ou alterando os preços, para observar como cada regra de cálculo se comporta na prática e reforçar o entendimento de encapsulamento e regras de negócio.

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