CriandoBits
Identifique-se Entrar Esqueceu a senha? Esqueci minha senha

Java - Construtores

Por Benedito Silva Júnior - publicado em 15/07/2016


Construtores são esses caras que constroem as coisas, ou melhor, objetos.

Toda classe em java tem pelo menos um construtor(até abstratas, enums), exceto interfaces. Mas é claro que interfaces não tem construtores, elas não fazem nada! Mas não subestime-as, elas são importantes para fornecer um acoplamento fraco entre as classes.

Todas as classes (até os enums) tem pelo menos um construtor, exceto as interfaces. Mas o que são esses construtores?

Um construtor é um "método" que é executado sempre que uma classe é instanciada. Toda vez que você digitar a palavra chave new o construtor será executado e inicializará o objeto. As vezes passamos algum parâmetro tipo new (1, 2, 4).

Quando fazemos isto estamos inicializando a classe com os dados parâmetros. O construtor serve para inicializar as variáveis de instância da classe, como também executar códigos legais toda vez que inicializar uma classe. Entenda códigos legais como coisas que você gostaria que fossem executadas toda vez que criar um objeto.

Veja:

class A { //super classe (classe pai) A(){ { super(); System.out.println("Executou construtor A"); // -- códigos legais aqui -- } }

Veja que o construtor é como um método mas ele não tem um tipo de retorno, nem void. Também tem o mesmo nome da classe e sempre terá. Ele pode ter modificador de acesso, até private (mas saiba das implicações disto). O compilador criará automaticamente um construtor igual o mostrado acima caso você não codifique nenhum. Porque ele faz isto?

Todo construtor executa primeiramente uma chamada super() ou this() dependendo do caso, quando executado. Somente uma dessas chamadas é válida antes do resto. Mesmo que você não coloque explicitamente, o compilador irá colocar um super() pra você porque em algum momento ele vai ter que inicializar sua superclasse antes de inicializar a classe em si.

Então você deve se perguntar se a classe A tem uma superclasse porque não está herdando de ninguém. Errado! Todas as classes herdam de Object implicitamente. Object é tipo uma classe "mãe" no Java (ela fornece métodos como equals por exemplo).

Se temos duas classes A e B, com B herdando A, quando criamos uma instância de B os construtores são executados em forma de pilha: B chama A e A chama Object. Object é executado, A é executado e por último B:

OBJECT >> A >> B 

 
Voltar a pagina anteriorVoltarSubir ao topo da páginaTopo