Utiliza-se “getters e setters” para garantir a proteção de atributos e métodos da classe. Logo, não é necessário criar uma classe do tipo estática.
Sugiro postar um outro exemplo demonstrando o seu problema, apresentando a ClasseA, ClasseB e ClasseProteção para que possamos ajuda-lo da melhor maneira possível.
Tchauzin!
G
gferraz.ti
Oi lina, obrigado pela ajuda,
Veja bem, a definição do meu problema é simples, a classe “A”, é uma classe que contém o cabeçalho de uma venda, a partir dela eu chamo outra classe, que contém uma lista de clientes, nesta classe ao clicar no cliente desejado, eu quero guardar o nome desse cliente na memória, para quando eu voltar para a classe do cabeçalho, eu preencher um textfield com esse valor!
lina
gferraz.ti:
Oi lina, obrigado pela ajuda,
Veja bem, a definição do meu problema é simples, a classe "A", é uma classe que contém o cabeçalho de uma venda, a partir dela eu chamo outra classe, que contém uma lista de clientes, nesta classe ao clicar no cliente desejado, eu quero guardar o nome desse cliente na memória, para quando eu voltar para a classe do cabeçalho, eu preencher um textfield com esse valor!
Oi,
O seu problema então é que quando a classe "B" é encerrada, seus atributos são apagados da memória. Olhe uma solução:
publicclassClasseA{// Instancia da estrutura clienteClasseClienteio_cliente=newClasseCliente();publicClasseA(){// Instancia a ClasseB enviado como parametro a ClasseCliente.newClasseB(io_cliente);System.out.println("Nome do cliente: "+io_cliente.getName());}}publicclassClasseB{// Instancia da estrutura clientepublicClasseB(ClasseClienteao_cliente){// Faz a ação e acrescente o nome.ao_cliente.setName("TESTE");}}publicclassClasseCliente{privateStringis_name;publicvoidsetName(Stringas_name){is_name=as_name;}publicStringgetName(){returnis_name;}}
Você também pode usar a instancia da classe "B" para isso:
publicclassClasseA{publicClasseA(){// Instancia a ClasseB enviado como parametro a ClasseCliente.ClasseBio_class=newClasseB();System.out.println("Nome do cliente: "+io_class.getClient().getName());}}publicclassClasseB{// Instancia da estrutura clienteClasseClienteio_cliente=newClasseCliente();// Instancia da estrutura clientepublicClasseB(){// Faz a ação e acrescente o nome.io_cliente.setName("TESTE");}publicClasseClientegetClient(){returnio_cliente;}}publicclassClasseCliente{privateStringis_name;publicvoidsetName(Stringas_name){is_name=as_name;}publicStringgetName(){returnis_name;}}
Claro que existem 'N' maneiras de fazer isso. O detalhe é encontrar uma que melhor se adapte na sua especificação.
Tchauzin!
G
gferraz.ti
Oi Lina, obrigado mais uma vez,
a questão é o seguinte, é que estou programando para Android(Só fui ver que havia uma sessão para android depois de postar), e esse valor que eu setei na classe “B”, eu ainda terei que recuperá-lo em outra tela depois…por isso preciso armazenar essas variaveis até que o usuário decida sair da rotina de venda.
lina
gferraz.ti:
Oi Lina, obrigado mais uma vez,
a questão é o seguinte, é que estou programando para Android(Só fui ver que havia uma sessão para android depois de postar), e esse valor que eu setei na classe “B”, eu ainda terei que recuperá-lo em outra tela depois…por isso preciso armazenar essas variaveis até que o usuário decida sair da rotina de venda.
Oi,
Bom… então estamos falando de Activity.
A melhor maneira é usar a classe Intent (método putExtra) e ir “repassando” os parâmetros para as novas Activity.
Tchauzin!
G
gferraz.ti
Então Lina, a rotina é a seguinte:
Primeiro a classe “CabecPed” é executada, aí nela, o usuário clica num botão “Buscar cliente”, ele é redirecionado para a tela de seleção de clientes, nesta tela eu recupero o codigo e o nome do cliente, sei que posso então utilizar o intent, e passar esse código para a classe CabecPed. Mas e em relação a primeira vez que a classe CabecPed for executada? Pois o cliente ainda não foi escolhido… então ao utilizar o intent.getExtras(); o valor estaria vazio…
lina
gferraz.ti:
Então Lina, a rotina é a seguinte:
Primeiro a classe “CabecPed” é executada, aí nela, o usuário clica num botão “Buscar cliente”, ele é redirecionado para a tela de seleção de clientes, nesta tela eu recupero o codigo e o nome do cliente, sei que posso então utilizar o intent, e passar esse código para a classe CabecPed. Mas e em relação a primeira vez que a classe CabecPed for executada? Pois o cliente ainda não foi escolhido… então ao utilizar o intent.getExtras(); o valor estaria vazio…
Oi,
Na primeira vez que a classe CabecPed for executada, era para mostrar o que? Porque você não utiliza um banco pequeno como SQLite?
Tchauzin!
G
gferraz.ti
Então, quando a CabecPed é executada, ela mostra o número de série, documento, e data de emissão, e o nome do cliente em branco, aí o usuário buscaria o nome do cliente na classe “B”, ao clicar no nome do cliente numa listview, eu salvaria esse nome na memoria, e fecharia essa activity, voltando para a CabecPed e preenchendo o campo do nome. Só depois disso o sistema armazenaria essas informações no SQLite…