Seguinte, tenho uma classe de execução que contém o método main, nessa mesma classe eu pergunto pro usuário se ele deseja iniciar ou finalizar o programa, se sim digita i, se não digita f. Faz a comparação e salva em uma variável n.
Como faço para acessar essa variável n em outra classe?
publicclassExecuta{publicstaticvoidmain(String[]args){Funcionarioe;Stringn;Tecladot=newTeclado();System.out.println("Digite I para iniciar.\nDigite F para finalizar.");n=t.leString();if(n.equalsIgnoreCase("F")){System.exit(0);}elseSystem.out.println("Carregando...");System.out.println("_______________________");while(n.equalsIgnoreCase("I")){System.out.println("\n* Cadastro de funcionario:\nDigite I para novo funcionario. Digite F para finalizar.");n=t.leString();System.out.println("_______________________");if(n.equalsIgnoreCase("F"))System.exit(0);elsee=newFuncionario(t.leString("Nome do funcionario: "),t.leDouble("Salario: "));}}}
precisaria instanciar a classe em um objeto…
e ai vc teria acesso aos metodos e variaveis da classe…
fnandos
Ela teria que ser uma variável de classe, private String n e ter get e set correspondente, ai vc poderia acessá-la em outra classe fazendo o import dessa.
Tentei fazer a variável fora do método, mas daí ela não é reconhecida dentro do main
erro: “non.static variable n cannot be referenced from a static context”
Alguma dica?
alucardeck
sim... para tudo oq vc fez...
e poem fora do "void main"...
aconselho a fazer assim:
publicclassTeste{publicstaticvoidmain(String[]args){newTeste();}publicTeste(){Scannerin=newScanner(System.in);Strings=in.next();//... seu programa aqui}}
assim nao exige q vc fique usando Static nos atributos dentro do Main principal
T
thgdias
maneira mais fácil e rápida… torna a variável estática…
aonde te passei o
protectedTIPO<variavel>
coloca:
protectedstaticTIPO<variavel>
essa é a maneira mais simples
M
mizael86
O problema é que vc ta declarando uma variavel de instancia e tentando acessar por um metodo estatico.
Uma boa solucao, caso essa variavel seja sempre acessada serializavelmente, vc pode por ela como um atributo estatico da classe Executar, eae vc pode acessa-la daonde quizer:
private static String n;
ai vc acessa: Executa.n
alucardeck
thgdias:
maneira mais fácil e rápida… torna a variável estática…
aonde te passei o
protectedTIPO<variavel>
coloca:
protectedstaticTIPO<variavel>
essa é a maneira mais simples
?
se ela tivesse 300 variaveis…
vc ia deixar as 300 static?
natz
Há! Valeu thgdias! Agora deu certo ;D
E obrigada a todos também, é só uma variável mesmo, não tem problema ser static, é que eu quero que salve num array quando a condição escolhida for “i”
T
thgdias
se ela tivesse 300 variaveis…
vc ia deixar as 300 static?[/quote]
como ela só tem 2 e sabe que continuarão sendo apenas 2, foi a maneira mais SIMPLES para que ela resolver o problema dela, só isso.
alucardeck
Simplicidade == Qualidade
retorna FALSE =P
ok ok… cada um com seu jeito de programar e ensinar…
natz
heeey! Não briguem ^^
Vou tentar das duas maneiras, mas uma mais simples é bom só pra ver se vai funcionar ;D Depois eu melhoro o código
alucardeck
natz:
heeey! Não briguem ^^
Vou tentar das duas maneiras, mas uma mais simples é bom só pra ver se vai funcionar ;D Depois eu melhoro o código
relaxa… nao eh nada pessoal não…
eh apenas q prefiro q ensinem o metodo “correto” de se fazer…
pq as pessoas q lerem podem achar q eh normal colocar static…
e como eu disse… um dia criar uma programa com 300 atributos statics nela…
ai gera confusões por parte dos “ponteiros”… e mais topicos no forum com perguntas q poderiam ser respondidas antes =P