Olá, tudo bem?
Como faço para acessar variável de outra classe? E se ela estiver no main…? Qual é/são a(s) melhor(es) forma(s)…?
Obs.: sei determinadas coisas, mas digamos que eu “tenha que ter” variável/is no main, etc…
Até…
Abraço!
Olá, tudo bem?
Como faço para acessar variável de outra classe? E se ela estiver no main…? Qual é/são a(s) melhor(es) forma(s)…?
Obs.: sei determinadas coisas, mas digamos que eu “tenha que ter” variável/is no main, etc…
Até…
Abraço!
Caucasian vc pode acessar as variáveis de uma classe de algumas formas.
1 - Seria instanciando as classes, ou seja, criar um objeto na Classe1 do tipo Classe2*;
2 - Utilizar o conceito de herança onde uma classe herda as variáveis e métodos de uma outra classe**.
Para isso vc deve criar as variáveis fora do main e iniciá-las no método construtor.
Não sei de sua necessidade, mas vc pode criar variáveis no main e repassar as instruções ao instanciar o objeto da outra classe.
*Dá uma olhada em visibilidade de variáveis(public, private…)
**Dá uma estudada em herança.
Você não pode acessar variáveis locais (Variáveis de métodos). Uma variável local nasce dentro do método e morre dentro do método. Em outras palavras, não é possível recuperar o valor de variáveis que forem declaradas dentro do método main() de outras classes.
Caso queira recuperar o valor de uma variável de outra classe precisará declará-la como uma variável estática ou de instância da classe.
Para saber mais busque apostilas sobre declarações e escopo de variáveis.
Espero ter ajudado!
Pessoal, muito obrigado! Era o que eu estava pensando mesmo ou, tvz., parecido… ^^
Mas ainda surge a questão: digamos que uma determinada classe seja instanciada em “vários locais” (se é que…). Recuperar o valor da variável que recebeu um valor específico “numa das instâncias” é possível noutra…?
Meio com dor de cabeça aqui, então, espero que entendam caso haja umas loucuras acima… Kkk… ^^
Pessoal, muito obrigado! Era o que eu estava pensando mesmo ou, tvz., parecido... ^^Mas ainda surge a questão: digamos que uma determinada classe seja instanciada em "vários locais" (se é que...). Recuperar o valor da variável que recebeu um valor específico "numa das instâncias" é possível noutra...?
Meio com dor de cabeça aqui, então, espero que entendam caso haja umas loucuras acima... Kkk... ^^
class A {
int x;
}
class B {
public static void main(String[] args) {
A a1 = new A(); // primeira instancia
A a2 = new A(); // segunda instancia
A a3 = new A(); // terceira instancia
a1.x = 1;
a2.x = 2;
a3.x = 3;
a2 = a1; // nesse momento a2 deixa de referenciar a segunda instancia da classe A e passa a referenciar a primeira (mesma instancia de a1)
System.out.println(a2.x); // vai exibir 1
}
}
Caso tenha, por exemplo, uma classe C que deseja acessar os valores de a1 o que você poderia fazer é serializar o objeto referenciado por a1 e depois deserializar na Classe em que deseja recuperá-lo. Não sei se é bem isso que você perguntou, mas se foi seria interessante dar uma estudada em serialização de objetos.
Pessoal, muito obrigado! Era o que eu estava pensando mesmo ou, tvz., parecido... ^^Mas ainda surge a questão: digamos que uma determinada classe seja instanciada em "vários locais" (se é que...). Recuperar o valor da variável que recebeu um valor específico "numa das instâncias" é possível noutra...?
Meio com dor de cabeça aqui, então, espero que entendam caso haja umas loucuras acima... Kkk... ^^
class A {
int x;
}
class B {
public static void main(String[] args) {
A a1 = new A(); // primeira instancia
A a2 = new A(); // segunda instancia
A a3 = new A(); // terceira instancia
a1.x = 1;
a2.x = 2;
a3.x = 3;
a2 = a1; // nesse momento a2 deixa de referenciar a segunda instancia da classe A e passa a referenciar a primeira (mesma instancia de a1)
System.out.println(a2.x); // vai exibir 1
}
}
Caso tenha, por exemplo, uma classe C que deseja acessar os valores de a1 o que você poderia fazer é serializar o objeto referenciado por a1 e depois deserializar na Classe em que deseja recuperá-lo. Não sei se é bem isso que você perguntou, mas se foi seria interessante dar uma estudada em serialização de objetos.
Show de bola, mas e quando há, por exemplo, uma classe que trata de uma janela com imagens e se tem de consultar valores da classe do Main ou mesmo outra que tem informações tipo quantidade de algo que não seja a classe principal? o.o