Duvidas sobre construtor

10 respostas
A

Olá pessoal, eu uso construtor na minhas aplicacoes em java, so q naum sei se aconselhavel usar ele vazio ou com os parametros ou t sem construtor, mas se eu naum criar um cronstrutor com irei criar um objeto na classe main

10 Respostas

_fs
Toda classe que não declara um construtor, por default possui um construtor vazio e público. Ou seja, isso:
public class MyClass {

}
É a mesma coisa que isso:
public class MyClass {
    public MyClass() {
    }
}
O mais próximo que uma classe pode chegar de "não ter construtor" seria declarar apenas um deles e marcá-lo como private. Neste caso é normal que a própria classe possua um método para gerar instâncias dela mesma:
public class MyClass {
    private MyClass() {
    }

    public MyClass getInstance() {
        // a própria classe tem direito de acesso 
        // ao construtor privado
        return new MyClass();
    }
}
Quanto a usar um construtor vazio ou com parâmetros, varia de caso para caso. O ideal é prover tudo que o objeto necessita para funcionar no momento de sua criação. Um exemplo simples:
public class Carro {
    public Carro( Motorista motorista, Gasolina gasolina ) {
        // etc
    }
}
renatosilva

E por que JavaBeans te obriga a declara um contrutor vazio?

_fs

Não sei se há mais motivos, mas um deles é para poder instanciar o objeto usando apenas Class.newInstance(), sem precisar fazer alguma macumba com construtores e parâmetros e medo de uma forma geral.

renatosilva

Class.newInstance???

1112

renato3110:
Class.newInstance???

Reflection.

renatosilva

Mas se o construtor vazio já existe por padrão, por que obrigar a declarar?

_fs

Oh, não li direito sua dúvida. Não é obrigado a declarar, mas a classe deve possuir um.

Aliás, procurei por isto na especificação e não encontrei hehe mas em vários outros sites há menção a esta característica.

peczenyj

Heim, meu filho ??

C
renatosilva

Huuuuuuuuuuummmmmmmmmmmmm…

Isso mesmo, só se declarar algum construtor é que precisa, mas não devia né?

Criado 2 de maio de 2006
Ultima resposta 3 de mai. de 2006
Respostas 10
Participantes 6