Ir ao conteúdo
  • Cadastre-se

Java ERRO: Exception in thread “main” java.lang.StackOverflowError


Posts recomendados

Olá, estou criando um código que simula de forma bem simples um processo em um cinema. Estou na etapa em que a pessoa escolhe o filme e o sistema precisa fazer uma comparação entre a Idade fornecida pela pessoa e a classificação indicativa do filme. Se for maior que a indicação do filme, o código segue em frente, se não ele barra o usuário com uma mensagem. Estou utilizando polimorfismo para fazer a “conversa” entre as classes, até agora foi bem, porém estou com este erro:

 

Exception in thread “main” java.lang.StackOverflowError
at VerificarIdade.(VerificarIdade.java:6)
at Filme.(Filme.java:10)
at VerificarIdade.(VerificarIdade.java:6)
at Filme.(Filme.java:10)
at VerificarIdade.(VerificarIdade.java:6)
at Filme.(Filme.java:10)
at VerificarIdade.(VerificarIdade.java:6)
at Filme.(Filme.java:10)
at VerificarIdade.(VerificarIdade.java:6)
at Filme.(Filme.java:10)…

 

Que se repete ainda mais vezes.
Tentei por enquanto aplicar a somente um filme, mas deu o erro, se eu conseguir arrumar vou aplicar para o restante também. Queria saber como resolver e se talvez exista uma forma mais simples de se realizar essa operação. Talvez até minha aplicação do if esteja incorreta kkk, estou BEM enferrujado no JAVA, valeu quem puder ajudar! Vou deixar as classes do ERRO abaixo!

 

 

Classe VerificarIdade:

public class VerificarIdade {

Entrada entrada = new Entrada();
Filme filme = new Filme();

//==============================================
//POLIMORFISMO

public void verIdade(){

int id = 0;
id = Integer.parseInt(entrada.entDados("\nInforme sua idade:"));

if(id < 12){
System.out.println("\nACESSO AO FILME NÃO LIBERADO!!!");
}else{
System.out.println("\nACESSO AO FILME LIBERADO!!!");
}        
}

//=====================================================

}

 

 

Classe Filme:

public class Filme {

private String nomeFilme = "";
private int classificacao = 0;
private int horario = 0;

Entrada entrada = new Entrada();
VerificarIdade vI = new VerificarIdade();

//=========================================================
//POLIMORFISMO

public void impHaranha(){
System.out.println("\n\nHOMEM ARANHA 3\n Classificacao Indicativa: 12 anos\n Genero: Acao e Aventura\n");

boolean vai = true;
int op = 0;

while(vai){

System.out.println("\n\n\nEscolha um horario e sala");
System.out.println("1) Sala 1 - 14hrs");
System.out.println("2) Sala 1 - 19hrs");
System.out.println("3) Sair");
try{
op = Integer.parseInt(entrada.entDados("\nEscolha uma opcao"));
}

catch(NumberFormatException nfe){
entrada.entDados("\nO valor da escolha deve ser um inteiro. Press <Enter> para continuar");
continue;
}

switch(op){

               case 1: 
               System.out.println("\n1) Horario 1");
               vI.verIdade();
               break;

               case 2:
               System.out.println("\n2) Horario 2");
               vI.verIdade();
               break;

               case 3:
               String resp = entrada.entDados("\nDeseja realmente sair do sistema? <s/n>");
               if(resp.equalsIgnoreCase("s")){
               System.exit(0);
               }
               break;

               default:
               entrada.entDados("\nA opcao deve estar entre 1 e 3");
               break;

               }

       }//fim do while


}
}`Texto pré-formatado`

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...