Dúvidas sobre o método main()

14 respostas
natz

Olá pessoaaal,

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?

public class Executa{
public static void main (String[] args){
  Funcionario e;
  String n;
  Teclado t = new Teclado();
      System.out.println("Digite I para iniciar.\nDigite F para finalizar.");
      n = t.leString();
      
  if (n.equalsIgnoreCase("F")){
      System.exit(0);
    }
    else
        System.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);
           else
             e = new Funcionario(t.leString("Nome do funcionario: "),
                   t.leDouble("Salario: "));
      }
     }

}

14 Respostas

alucardeck

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.

M

Passa o n por parametro!!!

classe queroVerOvalorDeN(){

meumetodoQueQuerVerOValorDeN(String n);

}
T

Coloca a variável fora do método e encapsula ela…

protected TIPO <variavel>;

public TIPO getVariavel(){
   return variavel;
}

public setVariavel(TIPO var){
  this.variavel = var;
}

para em outra tela capturar elas, e so chamar

new Main().getVariavel();
natz

Tentei fazer a variável fora do método, mas daí ela não é reconhecida dentro do main :frowning:

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:

public class Teste {
	
	public static void main(String[] args) {
		new Teste();
	}
	
	public Teste(){
		Scanner in = new Scanner( System.in );  
		String s = in.next();
		//... seu programa aqui
	}
	
}

assim nao exige q vc fique usando Static nos atributos dentro do Main principal

T

maneira mais fácil e rápida… torna a variável estática…

aonde te passei o

protected TIPO <variavel>

coloca:

protected static TIPO <variavel>

essa é a maneira mais simples

M

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

protected TIPO <variavel>

coloca:

protected static TIPO <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” :smiley:

T

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 :wink:

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 :wink:

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

nada pessoal contra o thgdias

Criado 17 de junho de 2008
Ultima resposta 17 de jun. de 2008
Respostas 14
Participantes 6