Blz galera! Estou iniciando no java (vindo do C++) e hoje treinando um pequeno codigo me deparei com um problema:
import java.util.*;
public class Frase
{
private Scanner teclado=new Scanner(System.in);
static public void main(String args[])
{
int rand1,rand2,rand3;
int cont=0;
String words1[]={"Hello ","Good Bye "};
String words2[]={"World","Boy","Girl"};
String words3[]={" !"," ?", " :)"};
String comando="continue",frase;
int size1= words1.length;
int size2= words2.length;
int size3= words3.length;
GetDados key;
RandomNumero randomizer;
int numero;
key=new GetDados(); //AQUI ESTA O ERRO
randomizer=new RandomNumero();
while(comando!="sair")
{
comando=key.getnome();
if(comando!="sair")
{
rand1= (int) (Math.random()*size1);
rand2= (int) (Math.random()*size2);
rand3= (int) (Math.random()*size3);
frase=(words1[rand1]+ " " + words2[rand2] + " "+ words3[rand3]);
numero=randomizer.rand();
System.out.println(frase);
}
}
}
private class GetDados
{
String getnome()
{
String nome;
nome=teclado.next();
}
}
private class RandomNumero
{
private int[] numeros={1,2,3,4,5};
private int randomizer,tamanho;
int rand()
{
tamanho=numeros.length;
randomizer=(int) Math.random() * tamanho;
return(numeros[randomizer]);
}
}
}
Na hora da compilacao o compilador anuncia o seguinte erro:
non-static variable this cannot be referenced from a static context
key=new GetDados();
o mesmo acontece com o randomizer.
Tenho o mesmo problema todas as vezes que tento utilizar objetos de classes definidas fora da main.
PS.: como o codigo foi feito apenas para me familiarizar com a sintaxe do java nao o organizei como deveria.
Agradeco desde ja pela atencao!
Valeu