Duvidas sobre construtor

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

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

[code]public class MyClass {

}[/code]
É 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:

[code]public class MyClass {
private MyClass() {
}

public MyClass getInstance() {
    // a própria classe tem direito de acesso 
    // ao construtor privado
    return new MyClass();
}

}[/code]

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 } }

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

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.

Class.newInstance???

[quote=renato3110]Class.newInstance???

[/quote]

Reflection.

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

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.

Heim, meu filho ??

Huuuuuuuuuuummmmmmmmmmmmm…

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