0
respostas

[Projeto] Gerenciamento de biblioteca

Olá!

Segue minha resolução:

  • Classe Mídia:
package br.com.alura.exercicios;

public abstract class Midia {
    String titulo;
    int anoPublicacao;

    public Midia(String titulo, int anoPublicacao) {
        this.titulo = titulo;
        this.anoPublicacao = anoPublicacao;
    }

    public String getTitulo() {
        return titulo;
    }

    public void setTitulo(String titulo) {
        this.titulo = titulo;
    }

    public int getAnoPublicacao() {
        return anoPublicacao;
    }

    public void setAnoPublicacao(int anoPublicacao) {
        this.anoPublicacao = anoPublicacao;
    }

    public Object criarCodigo(){
        String codigo = "LIB-" + titulo.substring(0,3).toUpperCase() + anoPublicacao;
        return codigo;
    }

    public abstract void exibirInfo();
}
  • Classes Livro, Revista e Ebook:
package br.com.alura.exercicios;

public class Livro extends Midia{

    String autor;

    public Livro(String titulo, int anoPublicacao, String autor) {
        super(titulo, anoPublicacao);
        this.autor = autor;
    }


    @Override
    public void exibirInfo() {
        System.out.printf("\nCódigo: %s | Livro: %s - autor: %s",criarCodigo(), titulo,autor);
    }
}
package br.com.alura.exercicios;

public class Revista extends Midia {

    String edicao;

    public Revista(String titulo, int anoPublicacao, String edicao) {
        super(titulo, anoPublicacao);
        this.edicao = edicao;
    }

    @Override
    public void exibirInfo() {
        System.out.printf("\nCódigo: %s | Revista: %s - Edição: %s",criarCodigo(), titulo,edicao);
    }
}
package br.com.alura.exercicios;

public class Ebook extends Midia{

    String formato;

    public Ebook(String titulo, int anoPublicacao, String formato) {
        super(titulo, anoPublicacao);
        this.formato = formato;
    }

    @Override
    public void exibirInfo() {
        System.out.printf("\nCódigo: %s | E-book: %s - Formato: %s",criarCodigo(), titulo,formato);
    }
}
  • Main para rodar a aplicação:
package br.com.alura.exercicios;

public class Main {
    public static void main(String[] args) {

        Midia livro = new Livro("Sobrevivente", 1979, "Stephen King");
        Midia revista = new Revista("National Geographic", 2015,"246");
        Midia ebook =  new Ebook("Clean Code", 2008,"PDF");

        livro.exibirInfo();
        revista.exibirInfo();
        ebook.exibirInfo();


    }
}
  • Saída:
Código: LIB-SOB1979 | Livro: Sobrevivente - autor: Stephen King
Código: LIB-NAT2015 | Revista: National Geographic - Edição: 246
Código: LIB-CLE2008 | E-book: Clean Code - Formato: PDF