Construtor Padrão  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
JBoy__
Java Ninja
[Avatar]

Membro desde: 02/04/2003 16:07:49
Mensagens: 269
Localização: Copenhagen/Denmark
Offline

Gostaria que alguem me explicasse a função e como aplicar construtores padrão. Gostaria de alguns exemplos, explicações e de como faz quando se omite um construtor padrão de como o compilador o coloca e comose chama um objeto por esse construtor... enfim tudo! obrigado[/b]
smota
Moderador
[Avatar]

Membro desde: 21/02/2003 16:19:19
Mensagens: 1647
Offline

Nossa JBoy ... tudo, tudinho mesmo?

Bem, construtor padrão é o famoso construtor sem parâmetros, ou seja:


Na verdade o nome certo não é padrão e sim default (que não são a mesma coisa).

Quando você não especifica NENHUM construtor pra sua classe o compilador (q seja) define um na hora da compilação para que sua classe tenha um entry Point e você possa instanciar um objeto no conhecido jeito:


No exemplo o construtor que eu defini é exatamente igual ao default criado pelo compilador, sem nada!

Nao tem muito o que dizer sobre isso ... eh um construtor que é criado caso você não especifique nenhuma pra sua classe.

[]s

"Perfection is reached not when there's nothing more to add but when there's no more to take out"
München
JavaBaby
[Avatar]

Membro desde: 07/01/2003 02:31:30
Mensagens: 97
Offline

vc vai entender melhor a finalidade do construtor qndo estudar herança.
[Email] [ICQ]
Gerson
JavaChild
[Avatar]

Membro desde: 26/01/2003 19:48:37
Mensagens: 113
Localização: São Paulo
Offline

München wrote:vc vai entender melhor a finalidade do construtor qndo estudar herança.


Uai, pq qdo estudar herança?
Construtor é uma forma de inicializar o estado de um objeto, assim que este é criado na memoria.
O objetivo sempre será esse, com ou sem herança.

Gerson K.
[MSN]
claudio
JavaChild
[Avatar]
Membro desde: 03/04/2003 09:08:49
Mensagens: 130
Localização: Sampa
Offline

<longo>

Bom Amigos,

o que acontece eh que o compilador faz mais do que foi dito:

Quando vc chama new para um Objeto, toda hierarquia de objetos precisa ser iniciada, por exemplo, se vc tem um classe gerente que eh filha da classe pessoa que eh filha de object e vc chama:



toda estrutura de classes precisa ser iniciada, a do gerente, a da pessoa e a da object, isso acontece automaticamente porque dentro de todo construtor o compilador poe uma chamada para o construtor da classe mae:

se vc escreveu uma classe assim:

como vc nao definiu nenhum construtor o compilador ira completa-la assim:

O contrutor default auto gerado leva o mesmo modificador de acesso da classe (public), e internamente tem uma chamada para super;

Caso vc escreva a classe assim:



o compilador nao ira colocar o construtor default, porque vc ja escreveu um, mas ira completar seu construtor com super assim:



algumas vezes vc precisa chamar um construtor do outro, ai vc deve utilizar o this assim:



o compilador ira completa-la assim:



o this ira desviar o processamento para o outro construtor.


[Obs]
Uma particularidade do mecanismo de construtores,

Suponha o codigo:



Como um construtor foi escrito, o compilador nao ira autogerar o default.

Agora se vc escrever a seguinte classe:



NAO ira compilar!!! De uma olhada no codigo autogerado pelo compilador:



Como vc definiu um construtor na classe Pessoa, o construtor default nao sera autogerado, para que a classe gerente compile vc devera chamar o super explicitamente assim:



Resumindo:

O compilador trabalha assim:

1) A classe ja tem construtor? se nao crie o default
2) Os contrutores possuem this ou super na primeira linha? se nao coloque super()

</longo>

É isso ai,

abraco,

Claudio Teixeira
claudio.com.br
[Email] [WWW] [MSN] [ICQ]
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team