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!! :!: :!: 