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 class VerificarIdade {
Entrada entrada = new Entrada();
//==============================================
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>>>>>> INFORMACOES PESSOAIS <<<<<<");
System.out.println("Nome: " + c1.getNome());
System.out.println("Telefone: " + c1.getTelefone());
//============================================================
c1.impInicio();
s1.impEscolha();
vI.verIdadeHA3();
vI.verIdadeGUCCI();
vI.verIdadeETERNOS();
//======================================================
}
}