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???
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é?