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!