1
resposta

[Projeto] Gerenciamento de biblioteca

public class Midia {
    private String titulo;
    private int anoPublicacao;

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

    public String getTitulo() {
        return titulo;
    }

    public int getAnoPublicacao() {
        return anoPublicacao;
    }

    public String gerarCodigo() {
        return "LIB-" + titulo.substring(0, 3) + anoPublicacao;
    }
}
public class Livro extends Midia{
    private String autorLivro;

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

    public String getAutorLivro() {
        return autorLivro;
    }

    public void exibirFichaMidia(){
        System.out.println("Codigo: " + gerarCodigo() + "| Livro: \"" + getTitulo() + "| Autor: " + autorLivro);
    }
}
public class Revista extends Midia{
    private int edicaoRevista;

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

    public int getEdicaoRevista() {
        return edicaoRevista;
    }

    public void exibirFichaMidia(){
        System.out.println("Codigo: " + gerarCodigo() + "| Revista: " + getTitulo() + "Edicao: "  + edicaoRevista);
    }
}
public class Ebook extends Midia{
    private String formato;

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

    public String getFormato() {
        return formato;
    }

    public void exibirFichaMidia(){
        System.out.println("Codigo: " + gerarCodigo() + "| Ebook: " + getTitulo() + "Formato: " + formato);
    }
}
public class Principal {
    public static void main(String[] args){

        Livro livro = new Livro("O Guia do Mochileiro das Galáxias", 1979, "Douglas Adams");
        Revista revista = new Revista("National Geographic", 2023, 245);
        Ebook ebook = new Ebook("Clean Code", 2008, "PDF");

        livro.exibirFichaMidia();
        revista.exibirFichaMidia();
        ebook.exibirFichaMidia();
    }
}
1 resposta

Olá, Enzo, como vai?

Seu código atende muito bem aos requisitos de herança e encapsulamento propostos pelo exercício. A aplicação do método substring na classe mãe para gerar o código dinâmico foi uma ótima escolha, assim como o uso do super nos construtores das subclasses.

Parabéns pelo empenho no desenvolvimento do projeto e continue compartilhando sua evolução conosco. O fórum está à disposição para qualquer dúvida.

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