Ajuda - Duplicate local variable

Olá galera, sou iniciante no Java e tou querendo fazer uma rotina de cadastro só para testar umas coisas
Quero que o usuario digite a opção do que quer fazer e ai entro com o metodo.
Só que quero que o nome de cada classe do objeto DadosPessoais seja de forma ondenada (ex> usuario[1], usuario[2]… ] só que tá me dando essa mensagem de erro: “Duplicate local variable Auxiliar”
O que desejo fazer não é viável ou estou fazendo errado? Tem outro modo de fazer?

PS1: está em negrito onde ocorre o erro.
PS2: segue abaixo o que eu fiz.


package PacoteTeste02;

import javax.swing.*;

public class Projeto {

public static void main(String[] args) {
	int Opcao = 0, Cont = 0;
	String Auxiliar="";
	
	while (Opcao!= 3){
		Cont++;
		Opcao = Integer.parseInt(JOptionPane.showInputDialog("Escolha a opção:\n1-Novo usuário\n2-Alterar dados\n3-Sair"));
		
		switch (Opcao){
		case  1 : [b]Auxiliar[/b] = "Usuário["+Cont+"]";
				DadosPessoais Auxiliar = new DadosPessoais(JOptionPane.showInputDialog("Nome:"),Integer.parseInt(JOptionPane.showInputDialog("Idade:")),(JOptionPane.showInputDialog("Telefone:"))); 
		}
	}
}

}


Segue abaixo a classe do objeto:


package PacoteTeste02;

public class DadosPessoais {

String Nome, Tel, Info;
int Id;
	
public DadosPessoais (String N, int I, String T){
	Nome = N;
	Id = I;
	Tel = T;
}

public void alterarNome (String N){
	Nome = N;
}

public void aniversario(){
	Id++;		
}

public String obterDados (){
	Info = "Nome: "+Nome+"\nIdade: "+Id+"\nTelefone: "+Tel;
	return Info;
}	

}


Att,
Fernando Cartaxo

vc tem uma variavel String chamada Auxiliar e esta tentando criar uma outra variavel chamada Auxiliar do tipo DadosPessoais! 8O

para diferenciar varizveis de instancia de variaveis locais use o this

this.Auxiliar = “xxx”;
DadosPessoais Auxiliar = new …

mas sugiro q escolha outro nome!

no caso ficaria assim?


		case  1 :[b] this[/b].Auxiliar = "Usuário["+Cont+"]";
				DadosPessoais [b]Auxiliar[/b] = new DadosPessoais(JOptionPane.showInputDialog("Nome:"),Integer.parseInt(JOptionPane.showInputDialog("Idade:")),(JOptionPane.showInputDialog("Telefone:"))); 

tá dando os seguintes erros:
no this = Cannot use this in a static context
Auxiliar = Duplicate local variable Auxiliar

onde está o erro?

Desculpe, não tinha visto o codigo todo antes …

realmente vc não pode usar o this pq a variael Auxiliar (String), nao é um atributo da classe e sim uma variavel local, do mesmo jeito que a variavel Auxiliar (DadosPessoais), nesse caso vc precisa alterar o nome das variaveis, pq vc não pode ter 2 variaveis com o mesmo nome, e tambem nao pode declarar Auxiliar(String) como um atributo da classe pq vc a esta usando em um metodo estatico!

mas eu não utilizo a variável Auxiliar 2x não
somente no main do programa, atribuo a ela um valor e a utilizo

como ficaria?

Se vc tiver uma variavel chamada auxiliar do tipo string, e uma outra variavel chamada auxiliar do tipo DadosPessoais, em tempo de execução como essa variavel seria tratada?

em uma linha vc diz: auxiliar = “teste”;
na outra linha vc diz: auxiliar.getCPF();

como saber qual variavel vc esta referenciando se ambas tem o mesmo nome?

para evitar isso o compilador não deixa vc faze-lo!!

mesmo q vc não use uma das variaveis pra nada vc alocou espaço na memoria e disse “esse espaço alocado pode ser referenciado pela variavel auxiliar e deverá guardar conteudo do tipo string”

java é uma linguagem fortemente tipada, ou seja, vc define o tipo da variavel na sua declaração, e não pode alterá - lo em tempo de execução!

eu acho q vc deve ter outra linguagem como base, como php, que (senão me engano) não requer q vc defina um tipo fixo para sua variavel!