Ir ao conteúdo

Posts recomendados

Postado

Olá, estou desenvolvendo um código que simula o sistema de um cinema, bem simples. Bom, mais cedo tive um problema com estouro de pilha, já solucionado. No momento, estou trabalhando na parte em que o cliente informa sua idade e ela é comparada a classificação indicativa do filme. Se for acima da classificação ele segue, se não ele recebe um aviso. Porém, consegui aplicar para o filme do Homem Aranha inicialmente, ainda estava fazendo os testes, e funcionou! Ai resolvi aplicar para todos os outros filmes do programa, “Casa Gucci” e “Eternos”, porém agora, quando vou fazer a comparação da idade, quando escolhe uma sala no Homem Aranha, ocorre este erro abaixo:

 

Exception in thread "main" java.lang.NoSuchMethodError: VerificarIdade.verIdade()V

at Filme.impHaranha(Filme.java:45)

at Sessoes.impEscolha(Sessoes.java:47)

at ShowTime.main(ShowTime.java:31)

 

 

E quando eu coloco outro filme, por exemplo o “Eternos”, ai escolho sua sala, ele simplesmente não me leva para a parte de verificar a idade, a mesma que da erro na do “Homem Aranha”, ele simplesmente fica me voltando na escolha das salas infinitamente, a mesma coisa ocorre com o filme da “Casa Gucci”

Queria saber a solução do problema e talvez possíveis dicas de melhorar meu código, vou postar as 3 classes envolvidas no erro abaixo, valeu!:

 

 

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\n\nINFORMACOES SOBRE HOMEM ARANHA 3!!!");
System.out.println("HOMEM ARANHA 3\nClassificacao Indicativa: 12 anos\nGenero: Acao e Aventura\n\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 ACIMA:\n"));
}

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\n\n");
               vI.verIdadeHA3();
               break;

               case 2:
               System.out.println("\n2) Horario 2\n\n");
               vI.verIdadeHA3();
               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


}

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

public void impCasaGucci(){
System.out.println("\n\n\nINFORMACOES SOBRE CASA GUCCI!!!");
System.out.println("CASA GUCCI\nClassificacao Indicativa: 14 anos\nGenero: Drama\n");

boolean vai = true;
int op = 0;

while(vai){

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

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\n\n");
               vI.verIdadeGUCCI();
               break;

               case 2:
               System.out.println("\n2) Horario 2\n\n");
               vI.verIdadeGUCCI();
               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


}

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

public void impEternos(){
System.out.println("\n\n\nINFORMACOES SOBRE ETERNOS!!!");
System.out.println("ETERNOS\nClassificacao Indicativa: 14 anos\nGenero: Acao, Epico\n");

boolean vai = true;
int op = 0;

while(vai){

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

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\n\n");
               vI.verIdadeETERNOS();
               break;

               case 2:
               System.out.println("\n2) Horario 2\n\n");
               vI.verIdadeETERNOS();
               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


}
}

 

Classe VerificarIdade:

public void verIdadeHA3(){

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

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

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

public void verIdadeGUCCI(){
int id = 0;
id = Integer.parseInt(entrada.entDados("\n\nInforme sua idade:"));

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

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

public void verIdadeETERNOS(){
int id = 0;
id = Integer.parseInt(entrada.entDados("\n\nInforme sua idade:"));

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

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

}

 

Classe ShowTime:

public class ShowTime extends Cliente {

public static void main(String arg[]){

Cliente c1 = new Cliente();
Entrada entrada = new Entrada();
Sessoes s1 = new Sessoes();
VerificarIdade vI = new VerificarIdade(); 


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

c1.setNome(entrada.entDados("Nome: "));
c1.setTelefone(Integer.parseInt(entrada.entDados("Telefone: ")));


System.out.println("\n\n>>>>>> informações PESSOAIS <<<<<<");
System.out.println("Nome: " + c1.getNome());
System.out.println("Telefone: " + c1.getTelefone());


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

c1.impInicio();
s1.impEscolha();
vI.verIdadeHA3();
vI.verIdadeGUCCI();
vI.verIdadeETERNOS();

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

}
}

 

Postado

Olá.

 

Fui ver melhor o código que você postou aqui e deu que a linha 45 é uma linha em branco. Por acaso esse código que você colocou aqui foi realmente o código que deu o erro que retornou para ti?

 

E outra. Esse NoSuchMethodError é lançado quando você faz uma chamada a um método que não existe na classe. Esse método verIdade() realmente existe? E se existe, ele realmente é chamado, pois eu não vi chamada dele nos códigos que você colocou aqui.

Postado

Bom a classe filme, que é do erro 45 eu coloquei, mas notei que a do erro 47 não coloquei, que é a classe Sessões, vou deixa-la aqui abaixo. 

Já sobre o verIdade, eu também estou achando muito estranho, pois em nenhum momento eu usei ele. Existe os outros, como verIdadeHA3() e verIdadeETERNOS() por exemplo, mas este que foi acusado não existe kkk.

 

 

Classe Sessões:

public class Sessoes {

private String nomeFilmes = "";
private String horarios = "";
private int sala = 0;

Entrada entrada = new Entrada();

Filme filme = new Filme();
VerificarIdade vI = new VerificarIdade();






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

public void impEscolha(){

boolean vai = true;
int op = 0;


while(vai){
System.out.println("\n\n\n1) >>>>>> FILME <<<<<<");
System.out.println("1) Homem Aranha 3");
System.out.println("2) Casa Gucci");
System.out.println("3) Eternos");
System.out.println("4) Sair");
try{
op = Integer.parseInt(entrada.entDados("\nESCOLHA UM FILME ACIMA:\n\n"));
}

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) Homem Aranha 3");
               filme.impHaranha();
               break;


               case 2:
               System.out.println("\n2) Casa Gucci");
               filme.impCasaGucci();
               break;


               case 3:
               System.out.println("\n3) Eternos");
               filme.impEternos();
               break;


               case 4:
               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 4");
               break;

               }

       }//fim do while




}



}

 

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!