Valor de uma String como nome de outra variável

5 respostas Resolvido
variaveljava
R

É possível utilizar o valor de uma variável como nome de outra variável?
Gostaria que:

> String x = "1";
> String cliente = "c" + x;
> Cliente cliente = new Cliente();//o nome da variável deveria ser c1

Gostaria de usar a mesma classe para criar diversos clientes, variando apenas o valor de “x” dentro de um while.
Obrigado

5 Respostas

I

Tentei achar um motivo pra aqui pra tal gambeta mas não achei.
"//o nome da variável deveria ser c1" não, não deveria porque nem compila.
Usa a mesma variável com uma nova instância a cada iteração, simples.

R

Desculpe, mas ainda sou novato em Java. Poderia explicar melhor como usar em uma nova instância?

F

Renato acho que você não soube se expressar bem, confesso que não ficou claro sua dúvida.

mas enfim, vou te responder o que me parece ser o problema.

public static void main(final String[] args){

     //Varaiavel qualquer..
     String clienteConta = null;

     //Instanciando um cliente com nome: Fulano e conta: 000303-03
     Cliente cliente = new Cliente("Fulano", "000303-03");

     //Variavel criada no inicio do main, recebendo a junção de nome com conta.
     clienteConta = cliente.getNome() + " / " + cliente.getConta();
}

public class Cliente {
   
  private String conta;  // Criar get/set
  private String nome; // Criar get/set



  //Construtor default
  Cliente(){

  }
  //Construtor com argumentos
  //Aqui você consegue instânciar uma classe cliente com os parâmetros que você passar
  //nome e conta, podendo recupera-los com get/set em cada respectivo atributo.
  Cliente(final String nome, final String conta){
       this.nome = nome;
       this.conta = conta;
  }

}
R
Solucao aceita

Olá Renato,

Não é possível criar nomes de variáveis a partir de Strings. Isso porque nomes de variáveis são criadas em tempo de compilação, enquanto que objetos String são criados já em tempo de execução. No entanto, a ferramenta para resolver o seu problema existe, e chama-se array. Através de um array você pode armazenar vários objetos sob o mesmo nome de variável, e utilizar um índice para acessar cada objeto individualmente, veja:

Cliente [] clientes = new Clientes[10]; //cria um array para armazenar 10 clientes

//cria 10 clientes
for(int i = 0 ; i < clientes.length ; i++){
    clientes[i] = new Cliente();
}

//exibe o nome de todos os clientes
for(int i = 0 ; i < clientes.length ; i++){
    System.out.println(clientes[i].getNome());
}

Espero que tenha ficado claro. Abs.

R

Obrigado a todos. Estudei o conceito de array e vejo que me atende.
Valeu!

Criado 23 de julho de 2016
Ultima resposta 23 de jul. de 2016
Respostas 5
Participantes 4