O que é um contrutor numa classe

9 respostas
J

Olá pessoal, alguem pode me exemplificar o que é um construtor dentro de uma classe.

Valeu…

9 Respostas

R

Ow, tipo assim mano…
toda vez de vc for instanciar um novo objeto na memória, o construtor em uma classe é o primeiro método a ser executado deste objeto…

Ex: MinhaClasse app = new MinhaClasse();

instancia um novo objeto app, e executa o construtor desta classe (MinhaClasse), todos os comandos que estiverem dentro deste construtor será executado na hora em que eu fizer esta nova instanciação…

Lembre-se que o contrutor deve ter o mesmo nome da classe, e dever ser de acesso “public”, ele também pode receber parâmetros como por ex:

public MinhaClasse(String s) {

.

.

.

}

Ok…

[]'s

D

Existem dois construtores o sem argumentos e o com argumentos…
vamos supor que vc tenha uma classe Pessoa e nessa classe vc tem set’s e get’s…os atributos de Pessoa sao Nome, Telefone…

No seu contrutor sem argumentos esta assim:

public Pessoa(){

setNome("");

setTelefone("");

}

e o seu construtor com argumentos esta assim:

public Pessoa(String _nome, String _telefone){

setNome(_nome);

setTelefone(_telefone);

}

se na classe Cadastro vc fizer assim:
Pessoa p=new Pessoa(); vc estara criando um objeto pessoa sem passar valores para ele ou seja…o seu p.nome = “” e o seu p.telefone=""…

Agora se vc fizer assim:
Pessoa p=new Pessoa(“Joao”,“229-0989”)…vc esta criando o objeto pessoa e p.nome=“Joao” e p.telefone=“229-0989”

Capice?
[]'s

J

mm ta ficando complicado isso…
vamos por assim, o contrutor eh um metodo de classe obrigatoriamente ele esta la, implicito ou explicito, assim como qualquer metodo voce pode sobreescreve-lo o que muda e o numero de parametros voce pode ter 0 ou n contrutores numa mesma classe, sendo que 0 construtor ele eh implicito

MinhaClasse {
public MinhaClasse(){ //isso nao precisaria estar aqui pois ele nao faz nada alem de instaciar o objeto, eh implicito
} }

/*
o metodo contrutor de classe existe mais voce nao o ve, ou ate ve depende como nesse exemplo, porem ele sempre existe e eh executado quando voce chama “new” MinhaClasse(); <- chamada para o contrutor do objeto descrito na classe
uma classe abstrata ou interfaces nao tem contrutores, pois sao classes de definicoes de tipo de objetos…
*/

acho que ervas isso :twisted:

J

“javaquest”:

…uma classe abstrata ou interfaces nao tem contrutores, pois sao classes de definicoes de tipo de objetos…
*/

acho que ervas isso :twisted:

Uma classe abstrata pode ter construtores…
Construtores podem ser private… exemplo: quando vc utiliza o pattern Singleton, vc define o construtor como private para controlar a quantidade de classes instânciadas (que neste padrão é um apenas).

Blz???

:wink:

J

bahh 8O shoock
nunca em minha pequena existencia jamais vi um construtor em classes abstratas muito menos com o modificador private.

anyway, valeu por mais uma vez abrir minha cabeça;
javaTeco sempre dando uma mao

J

“javaquest”:
bahh 8O shoock
nunca em minha pequena existencia jamais vi um construtor em classes abstratas muito menos com o modificador private.

anyway, valeu por mais uma vez abrir minha cabeça;
javaTeco sempre dando uma mao

Estamos ai pra ajudar e ser ajudado… :smiley:

Como já mostrei um exemplo de construtor com acesso privado… bem agora vamos ao exemplo de uma classe abstrata com um construtor…

Imagine uma classe Funcionário, onde tenha atributos (como nome, endereco…) e métodos implementados (setNome, getNome) e outros abstratos… blz… Esta classe pode ter um consturtor onde vc passa o nome e endereço, na qual será atribuídos aos atributos nome e endereco, respectivamente. Ai vc pode pensar… nunca será instânciada esta classe… pra que um construtor? Então… ai que vem o legal… imagine que vc especialize a classe… ou seja, uma classe Gerente hera Funcionário… ele terá um nome e endereço… ai no construtor de Gerente vc pode chamar o construtor da super classe (que neste caso é Funcionário), através do super(parâmetros do construtor da super classe)…

blz???

R

É auilo que você vai usar para inicializar a classe, ou seja, usar a classe.

M

..esse aqui é pra pirar então hehaehea..

class Foo &#123;
    
    Foo&#40;&#41;
    &#123;
        this&#40; &quot;curioso?&quot; &#41;;
    &#125;
    
    Foo&#40; String s &#41;
    &#123;
        this&#40;&#41;;
    &#125;    

&#125;

...pelo livro da Kathy, quem tentar, vai receber uma exceção de q não tem mais memória, maaass.... rodei aqui, e na hr de compilar da o erro recursive constructor invocation, ...livro desatualizado será? :roll:

R

Era para retornar a String[color=“red”] curioso?[/color] , mas…

Criado 3 de maio de 2004
Ultima resposta 10 de mai. de 2004
Respostas 9
Participantes 7