1
resposta

[Projeto] Gerenciamento de biblioteca

package biblioteca.de.gerenciamento;

public class Midia {
    protected String titulo;
    protected int anoDePublicacao;

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

    public String codigo(){
        return "LIB-" + titulo.substring(0,3) + anoDePublicacao + "|";
    }


}

package biblioteca.de.gerenciamento;

public class Livro extends Midia implements ExibirInfo{
    private String autor;

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

    public void exibirInfo() {
        System.out.println(codigo() + "Livro: \"" + titulo + "\" - Autor: " + autor + "\n");
    }
}

package biblioteca.de.gerenciamento;

public class Revista extends Midia implements ExibirInfo{
    private int edicao;

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

    public void exibirInfo() {
        System.out.println(codigo() + "Revista: \"" + titulo + "\" - Edição: " + edicao + "\n");
    }
}

package biblioteca.de.gerenciamento;

public class Ebook extends Midia implements ExibirInfo{
    private String formato;

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

    public void exibirInfo() {
        System.out.println(codigo() + "Ebook: \"" + titulo + "\" - Formato: " + formato + "\n");
    }
}

package biblioteca.de.gerenciamento;

public interface ExibirInfo {
    public void exibirInfo();
}

package biblioteca.de.gerenciamento;

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

        Livro livro1 = new Livro("O Idiota", 1868, "Fiódor Dostoiévski");
        Revista revista1 = new Revista("National Geographic", 2023, 245);
        Ebook ebook1 = new Ebook("Clean Code", 2008, "PDF");

        livro1.exibirInfo();
        revista1.exibirInfo();
        ebook1.exibirInfo();
    }
}
1 resposta

Olá, Augusto! Tudo bem?

Parabéns pela implementação!

A estrutura do seu projeto está muito coerente. Você aplicou corretamente a Herança (estendendo de Midia para reaproveitar o ano e título) e o contrato da Interface ExibirInfo para garantir que todas as classes tenham o comportamento de mostrar os dados.

Continue mandando ver nos estudos de Java!

Bons estudos!

Sucesso

Imagem da comunidade