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
Livropossui 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.