Variaveis Globais

2 respostas
L

Boas pessoal,

tenho tres classes simples ,

na primeirs classe instanciei duas Strings variavelGlobalUser e variavelGolbalPass. E quero que esta class guarde para o resto do programa estas duas variaveis

Package teste;
Public class class1{

public String variavelGlobalUser = "";
public String variavelGlobalPass = "";
}

Abaixo os metodos Get e Sets destas variaveis

......

Na segunda class eu atribui valores as variaveis criadas na class1

public class class2{

....


class1 cc = new class1();
cc.setVariavelGlobalUser("nome_Do_Utilizador");
cc.setVariavelGlobalPass("pass_Do_Utilizador");

System.out.printLn(cc.VariavelGlobalUser) ; // Imprime corectamente o valor de user que atribui acima .
System.out.printLn(cc.VariavelGlobalUser) ; // Imprime corectamente o valor de passque atribui acima .



}

A terceira class, supostamente seria para utilizar os dados da class1 que foram alterados pela class2

public class class3{

class1 c1 = new class1();

System.out.printLn(c1.VariavelGlobalUser) ; // Imprime vazio .
System.out.printLn(c1.VariavelGlobalUser) ; // Imprime vazio.


}

No fundo o que gostaria que acontecesse era que, apartir de uma class eu pudesse atribuir valores as duas String que estao noutra class, e numa terceira poder imprimir estes valores. Algo do tipo variaveis globais.

Cumprimentos

2 Respostas

E

Se eu entendi correto:

Class1

public class Class1 {

	private String variavelGlobalUser = "";

	private String variavelGlobalPass = "";

	public String getVariavelGlobalPass() {
		return variavelGlobalPass;
	}

	public void setVariavelGlobalPass(String variavelGlobalPass) {
		this.variavelGlobalPass = variavelGlobalPass;
	}

	public String getVariavelGlobalUser() {
		return variavelGlobalUser;
	}

	public void setVariavelGlobalUser(String variavelGlobalUser) {
		this.variavelGlobalUser = variavelGlobalUser;
	}
	
	

}

Class2

public class Class2 {
	
	public Class2(Class1 cc) {
		cc.setVariavelGlobalUser("nome_Do_Utilizador");  
		cc.setVariavelGlobalPass("pass_Do_Utilizador");
	}
}

Class3

public class Class3 {
	
	public static void main(String args[]) {
		Class1 c1 = new Class1();
		
		System.out.println("Antes GlobalPass: " + c1.getVariavelGlobalPass());
		System.out.println("Antes GlobalUser: " + c1.getVariavelGlobalUser());
		new Class2(c1);
		System.out.println("Depois GlobalPass: " + c1.getVariavelGlobalPass());
		System.out.println("Depois GlobalUser: " + c1.getVariavelGlobalUser());
	}
}

Existe a opção de deixar as variáves da Class1 como static.

Se não for isso, é só falar.

R

Você pode usar o Padrão Singleton para a Class1, assim todas as outras classeas acessariam a mesma instancia de Class1 e com isso a classe 3 conseguiria imprimir os dados que foram setados pela classe 2.

Qualquer dúvida poste ae.

Criado 16 de março de 2008
Ultima resposta 16 de mar. de 2008
Respostas 2
Participantes 3