3.4 Entendendo a construção de um objeto

Agora que já conhecemos um pouco sobre objetos, podemos entender melhor como funciona seu processo de construção. Repare na sintaxe utilizada para criar um novo Livro:

Livro livro = new Livro();

Quando escrevemos a instrução Livro() seguida da palavra reservada new, estamos pedindo para a JVM procurar a classe Livro e invocar o seu construtor, que se parece com:

public Livro(){
 
}
 

Um construtor é bastante parecido com um método comum, mas ele não é um. Diferente dos métodos, um construtor tem o mesmo nome da classe e não tem um retorno declarado.

Mas, se nunca escrevemos esse construtor, quem o fez? Sempre que você não criar um construtor para suas classes,o compilador fará isso para você.

Quer uma prova? Vamos utilizar o programa javap que já vem no JDK para ver o código compilado. Acesse pelo terminal do seu sistema operacional a pasta bin de seu projetoe rodeo comando javap Livro. A saída deverá se parecer com:

Turini@ ~/Documents/workspace/livro-oo > javap Livro Compiled from “Livro.java”

public class Livro { java.lang.String nome; java.lang.String descricao; double valor; java.lang.String isbn; public Livro();
void mostrarDetalhes();
public void aplicaDescontoDe(double);

}

Note que, mesmo sem criar o construtor vazio, ele está presente em nosso

código compilado:

public Livro();
 

E, sim, todo código que estiver declarado dentro do construtor será executado quando um objeto desse tipo for criado. Por exemplo, o código a seguir imprime uma mensagem sempre que criarmos um novo Livro:

public class Livro {

String nome; String descricao; double valor; String isbn; Autor autor;

public Livro() {
 

System.out.println(“novo livro criado”);

 
}
 
// demais metodos da classe
 
}
 

Para testar, podemos criar alguns livros dentro de um método main e

executar esse código:

public static void main(String[] args) { Livro livro1 = new Livro();

⬅️ Capítulo Anterior | Próximo Capítulo ➡️