Construtor vazio

Criei um construtor vazio na minha aplicaçao e quis inicializar um objeto seu para chamar um metodo da sua classe…

[code]public Construtor(){
}

//em outra classe
Construtor c = new Construtor()
c.umMetodoQualquer();[/code]

Na classe Construtor já tem outro construtor parametrizado!!
Só que qando compilo diz q a variavel c está nula!!

Alguma soluçao???

E porque você está querendo instanciar um objeto da própria classe?
É algo obrigatório ou necessário para sua aplicação?

Eu acho que ele não está querendo …

[quote=Metal Java Full]Criei um construtor vazio na minha aplicaçao e quis inicializar um objeto seu para chamar um metodo da sua classe…

[code]public Construtor(){
}

//em outra classe
Construtor c = new Construtor()
c.umMetodoQualquer();[/code]

Na classe Construtor já tem outro construtor parametrizado!!
Só que qando compilo diz q a variavel c está nula!!

Alguma soluçao???

[/quote]

Somente com essas informações fica difícil ajudar.

Poste o stack trace, como também o código-fonte.

Obrigado.

[quote=WendersonLP]E porque você está querendo instanciar um objeto da própria classe?
É algo obrigatório ou necessário para sua aplicação?[/quote]
Como está definido no meu exemplo, o objeto está em outra classe!!!
É pq eu precisso acessar um método de uma classe (Principal, por exemplo) na classe Agenda!
Para isso eu tenho q instanciar um objeto Principal…

Principal p = new Principal(); p.umMetodoQualquer();
… para depois acessar um método de Principal dentro de Agenda!!

Só q Principal já tem um construtor q inicializa algumas variaveis:

Principal(int num){ this.num = num; }

Portanto, nao me deixa instanciar um novo construtor a nao ser q eu mande um interio pra ele, e nao qeria fazer isso todas as vezes…

alguma sugestao?!

ainda ñ entendi o que vc quer fazer.

É o seguinte: eu tenho duas classes: uma “Principal” e uma “Agenda”!!
Na classe Principal eu tenho uma variavel “num”, um construtor q a inicializa e um metodo:

class Principal{ int num; Principal(int num){ this.num = num; } public void umMetodoQualquer(){ ... }

Na classe Agenda eu gostaria de acessar esse metodo qualquer, e para isso teria de instanciar um objeto nela mesma:

class Agenda{ Principal p = new Principal(); }

para depois acessar o metodo:

p.umMetodoQualquer()

O problema é q ele nao aceita q eu instancie o objeto, pq o construtor de Principal precisa de um argumento!
Só q eu nao qeria mandar um inteiro pro construtor de Principal toda vez q eu instaciasse um objeto…
Tentei criar um construtor vazio

Principal(){ //vazio }
Mas ele tbm nao deixa!!

alguem?!

No construtor que recebe o parâmetro, você está instanciando algum outro objeto?

Se sim, nesse “umMetodoQualquer” você está chamando algum método desse objeto instanciado nesse construtor com parâmetro?

Se você tem um construtor que recebe parâmetros, o Java eliminará o construtor que não recebe. PAra corrigir o problema, você deve definir no braço um construtor vazio.

[code]class Principal{
private int num;
public Principal(int num){
this.num = num;
}
public Principal() {
this(0); //Chama o outro com um valor padrão para num
}

public void umMetodoQualquer(){

}
}[/code]

Como seu construtor com parâmetros inicializa a classe, o Java não pode criar um construtor em branco, pois isso envolveria “deduzir” valores padrão. Lembre-se, sempre que um construtor diferente do padrão for definido, o construtor padrão não será automagicamente criado.

1 curtida

se já existe um construtor que recebe parametros, vc deve usar ele. se não existe, vc deve criar um. O Java só cria um construtor sem parametros se vc não definir nenhum, se vc definir um construtor o java não cria o padrão

agora deu certo!!
Vlew galera!! :!: :!: :slight_smile: