ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [개인프로젝트] 키오스크 만들기 1
    스파르타코딩클럽/자바 개인프로젝트 - Kiosk 2023. 10. 20. 20:53

    6일의 기한을 둔 개인프로젝트 첫번째

     

    키오스크 만들기 이다.

     

     

    프로젝트 시작 첫날 기본적인 내용을 블로그에 기록하지 않아서

     

    어느정도 만들어진 상태부터 시작하게 되었다.

     

    그래서 완성까지 특이사항에 대한 기록, 의문점과 해결방식 위주로 기록을 하려 한다.

     

     

    첫번째 의문 (해결)

    메뉴판이 계속 나타난다?

     

     

    while문으로 무한루프를 돌면서 메뉴를 선택하게 했다.

    메뉴 구성방식은

    이렇게 구성되어있고

    메뉴에 맞는 인덱스를 콘솔창에 입력하면 해당 하위메뉴를 출력해주는 형식으로 구성하였다.

     

    그런데 1을 입력해서 메인메뉴 하위 리스트를 출력하면

    위의 메뉴들이 

    선택한 메뉴 밑에 다시 나타나는 것이다.

     

    원인은 상위메뉴를 표시하는 printMenu() 메소드가 while문의 무한반복 안에 있었기 때문에

    계속 무한반복이 되는 것이 원인이었다.

     

    어떻게 해결할까 고민 끝에

    boolean alreadyview = false; //메뉴판을 처음 한번만 보여주기 위한 변수
    
    if(!alreadyview) {
             Menu.printMenu();
             alreadyview=true;
        }

    while문 밖에 alreadyview 변수를 선언하고

     

    while문 안에 해당 조건문을 삽입하여  상위메뉴가 단 한번만 출력할 수 있게 하였다.

     

    또한 음식메뉴를 선택하거나, 취소하는 등  상위메뉴의 출력이 필요한 곳에서는 

     

    코드의 마지막에  alreadyview를 true로 바꿔주는 코드를 한줄 삽입하여  필요할 때  상위메뉴를 출력할 수 있도록 하였다.

     

     

     

     

     

     

    남은 애로사항 (미해결)

     

    신경쓸 코드가 너무 많은 나머지

     

    모든 메소드와 변수를 static으로 구성하였다.

     

    (ㅋㅋ..)

     

    메뉴를 출력하는 메소드와 변수는 static으로 구성하는 것이 맞으나

     

    주문을 처리하는 Order 클래스의 메소드와 변수들은 static이 아닌 인스턴스변수로 처리해야 하는 것이 맞다고 한다.

     

    (매번 주문이 끝나면 초기화하고 새로 진행해야하므로) 

     

    그래서 내일 선택사항을 모두 구현한 후 Order클래스 내의 static 을 정리해야한다.

Designed by Tistory.