Criei uma classe Porta com alguns métodos que abre, fecha, tranca, destranca e exibe o status da porta.
Minha classe principal “TestePorta” tem um método chamado menu fazendo as respectivas chamadas dos métodos da classe Porta.
O problema é que ao executar o programa ele chama os métodos, porém não está salvando.
Exemplo: A porta inicia aberta, mando fechar, ela fecha. Se escolho verificar o status da porta ele retorna como porta aberta.
Segue o código:
public class Porta {
private boolean portaAberta = true;
private boolean tracarPorta=false;
public void abrirPorta(){
if(portaAberta==false && tracarPorta == true)
System.out.println("A porta está trancada e não pode ser aberta.\n");
if(portaAberta ==true)
System.out.println("A porta já está aberta.\n");
if(portaAberta==false && tracarPorta==false) {
portaAberta = true;
System.out.println("A porta foi aberta.\n");
}
}
public void fecharPorta(){
if(portaAberta ==false)
System.out.println("A porta já está fechada.\n");
else {
portaAberta = false;
System.out.println("A porta foi fechada.\n");
}
}
public void trancarPorta(){
if(portaAberta == false && tracarPorta == true)
System.out.println("A porta já está trancada.\n");
if(portaAberta == false && tracarPorta == false){
tracarPorta = true;
System.out.println("A porta foi trancada.\n");
}
if(portaAberta == true && tracarPorta == false){
portaAberta = false;
tracarPorta = true;
System.out.println("A porta foi fechada e trancada.\n");
}
}
public void destrancarPorta(){
if(tracarPorta==true){
tracarPorta = false;
System.out.println("A porta foi destrancada.\n");
}else
System.out.println("A porta já esta destrancada.\n");
}
public void estadoPorta(){
if(portaAberta == true && tracarPorta == false)
System.out.println("A porta está aberta.\n");
if(portaAberta == false && tracarPorta == false)
System.out.println("A porta está fechada e destrancada.\n");
if(portaAberta == false && tracarPorta == true)
System.out.println("A porta está fechada e trancada.\n");
}
}//Fim da classe Porta
public class TestePorta {
public static void main (String[] args){
TestePorta.menu();
}//Fim da classe main
//Método de menu para fazer as chamadas dos métodos da classe Porta
public static void menu(){
Porta porta = new Porta();//Declarando a variável de instância porta
Scanner entrada = new Scanner(System.in);
int opcao;
System.out.println("0-Sair");
System.out.println("1-Abrir porta");
System.out.println("2-Fechar porta");
System.out.println("3-Trancar porta");
System.out.println("4-Destrancar porta");
System.out.println("5-Estado da porta\n");
opcao = entrada.nextInt();
//Switch para avaliar a opcao digitada e chamar o respectivo método descrito no menu
switch(opcao){
case 0:
System.out.println("Encerrando o programa.");
break;
case 1:
porta.abrirPorta();
menu();
case 2:
porta.fecharPorta();
menu();
case 3:
porta.trancarPorta();
menu();
case 4:
porta.destrancarPorta();
menu();
case 5:
porta.estadoPorta();
menu();
default:
System.out.println("Número inválido.\n");
menu();
}//Fim do switch
}//Fim do método menu
}//Fim da classe TestePorta