Construtores em Java
O artigo apresenta as regras necessárias para criação e manipulação de métodos construtores em Java e porque eles são importantes para a linguagem.
Em Java, todas as classes, incluindo classes abstratas, necessitam pelo menos de um construtor. Através do construtor o desenvolvedor terá acesso à classe, às suas variáveis e métodos. Os construtores sempre serão chamados em tempo de execução e disponibilizarão a criação de um objeto desta classe.
Criando Construtores
Vamos agora aprender a criar construtores em uma classe e entender quais são as regras de execução deles. É muito importante que o desenvolvedor entenda como a execução de um código funcionará através da criação de um ou mais construtores na classe e também a relação existente entre construtores da superclasse com construtores de suas subclasses. Você deve ter sempre em mente que toda classe em Java deve ter pelo menos um método construtor, por isso é tão importante entender como eles funcionam.
Classe com construtor implícito
Chamamos de explícito um construtor que seja declarado pelo desenvolvedor, ou seja, esteja visível no código fonte. Quando este não está visível no código fonte, o chamamos de implícito e neste caso será criado pelo compilador. Na Listagem 1, o construtor não será criado, assim, o compilador irá gerá-lo implicitamente.
package javamagazine.listagem1;
public class Animal {
private double peso;
private String grupo;
// gerar getters e setters
public static void main(String[] args) {
Animal animal = new Animal();
animal.setPeso(5.5);
animal.setGrupo("Mamiferos");
System.out.println("Peso: " + animal.getPeso() +
" Grupo: " + animal.getGrupo());
}
}
O que aconteceu na Listagem 1?
Primeiro criamos uma classe chamada Animal, e em seguida duas variáveis de instância, peso e grupo. No método main() foi declarada uma variável de referência chamada animal, do tipo Animal e atribuído a ela um objeto do tipo Animal. Quando utilizamos o comando new Animal(), “mandamos” construir este objeto e atribui-lo à variável de referência. Teremos então acesso a todos os métodos e variáveis da classe Animal, através da variável animal.
Mesmo sem declarar um construtor explicitamente, esse código não gera nenhum erro de compilação ou de execução, porque como já foi dito, o compilador se encarregará de criá-lo.
Classe com construtor explícito
Se quiséssemos declarar outro construtor, que possuísse como argumento um valor correspondente a peso e outro correspondente a grupo, conforme a Listagem 2, precisaríamos então obrigatoriamente declarar o construtor padrão se quiséssemos utilizá-lo, senão, ocorreria um erro de compilação referente à linha que possui a instrução new Animal().
Sempre que um construtor com argumentos for declarado, o compilador deixará de criar o construtor padrão, então devemos criá-lo explicitamente caso seja preciso utilizá-lo.
package javamagazine.listagem2;
public class Animal {
private double peso;
private String grupo;
//gerar getters and setters
public Animal() {
//padrão
}
public Animal(double peso, String grupo) {
super();
this.peso = peso;
this.grupo = grupo;
}
public static void main(String[] args) {
Animal a = new Animal();
a.setPeso(5.5);
a.setGrupo("Mamiferos");
System.out.println("Peso: " + a.getPeso() + " Grupo: " + a.getGrupo());
Animal b = new Animal(6.0, "Aves");
System.out.println("Peso: " + b.getPeso() + " Grupo: " + b.getGrupo());
}
}
Na Listagem 2, foram declarados dois construtores. O primeiro deles, com o comentário “padrão”, possibilita criar o objeto a e o segundo o objeto b. O segundo construtor, com a lista de argumentos, nos permite criar um objeto e atribuir a este valores em tempo de criação, sem precisar utilizar o método "
[...] continue lendo...Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Vídeo