Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[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
1 resposta
solução!

Olá, Victor! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso das classes abstratas para estruturar mídias em Java, utilizou muito bem a herança para diferenciar livros, revistas e ebooks e ainda compreendeu a importância da sobrescrita de métodos para personalizar a exibição das informações em cada tipo de mídia.

Continue postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Sugestão de conteúdo para você mergulhar ainda mais no tema:

Alguns materiais estão em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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