Develop code that overloads constructors

Vamos criar um exemplo em Java que utiliza sobrecarga de construtores em uma classe chamada Livro. A sobrecarga de construtores permite criar objetos usando diferentes combinações de parâmetros. No exemplo, teremos construtores para casos com e sem parâmetros.

public class Livro {
    // Campos
    private String titulo;
    private String autor;
    private int anoPublicacao;

    // Construtor padrão (sem parâmetros)
    public Livro() {
        this.titulo = "Sem Título";
        this.autor = "Autor Desconhecido";
        this.anoPublicacao = 0;
    }

    // Construtor com parâmetros: título e autor
    public Livro(String titulo, String autor) {
        this.titulo = titulo;
        this.autor = autor;
        this.anoPublicacao = 0;  // Ano de publicação não especificado
    }

    // Construtor com parâmetros: título, autor e ano de publicação
    public Livro(String titulo, String autor, int anoPublicacao) {
        this.titulo = titulo;
        this.autor = autor;
        this.anoPublicacao = anoPublicacao;
    }

    // Método para exibir informações sobre o livro
    public void exibirInfo() {
        System.out.println("Título: " + titulo);
        System.out.println("Autor: " + autor);
        System.out.println("Ano de Publicação: " + anoPublicacao);
    }

    public static void main(String[] args) {
        // Criando objetos Livro usando construtores diferentes
        Livro livroPadrao = new Livro();
        Livro livroSemAno = new Livro("Java Programming", "John Doe");
        Livro livroCompleto = new Livro("Design Patterns", "Erich Gamma", 1994);

        // Exibindo informações dos livros
        System.out.println("Informações do Livro Padrão:");
        livroPadrao.exibirInfo();
        System.out.println();

        System.out.println("Informações do Livro Sem Ano de Publicação:");
        livroSemAno.exibirInfo();
        System.out.println();

        System.out.println("Informações do Livro Completo:");
        livroCompleto.exibirInfo();
    }
}

Neste exemplo:

  • A classe Livro possui três construtores: um construtor padrão sem parâmetros, um construtor com parâmetros para título e autor, e um construtor com parâmetros para título, autor e ano de publicação.
  • Cada construtor inicializa os campos do objeto com valores específicos.
  • O método exibirInfo é utilizado para imprimir as informações do livro.

No método main, demonstramos como criar objetos Livro usando diferentes construtores e como exibir as informações associadas a esses objetos. Isso ilustra a flexibilidade proporcionada pela sobrecarga de construtores.