TIL_180510 자바 고객관리 프로그램.v2
오늘은 java.util.Scanner를 이용해 새로운 고객정보를 사용자로부터 입력받는 기능을 만들었다. 사용자는 프로그램이 사전에 준비한 질문에 대답을 입력하고, 그 대답은 새로운 인스턴스의 값으로 들어와 인스턴스가 생성! 여기에 while문을 통해 한번 실행 후 꺼지지 않도록 한다.
자바 고객관리 프로그램.v2 기능
- 계속해서 반복하기 위한 반복문 while
- 사용자에게 보여줄 메뉴 메소드 showMenu(), switch문 설정
-Add to Customer
-Exit Program - 사용자에게 입력을 요구할 질문 출력
- 질문에 응답한 사용자의 입력값으로 customerInfo의 인스턴스 생성
- 생성된 인스턴스의 값을 출력 showCustomerInfo(), 확인
기능에 따른 구조설계
1. class CustomerInfo { }
-데이터타입 설정
-고객정보 출력 showCustomerInfo()
2. class Manage { }
-메뉴 작성 showMenu()
-사용자 입력값으로 인스턴스 생성/출력할 inputData()
3. main Method { }
-while문 반복
-showMenu()실행
-각 메뉴별 실행될 구문 작성 (switch문)
|
|
1. 구조 설계의 어려움
v2에서 구현할 기능을 작성하는 것은 순조로웠으나, 구조를 설계할때에 한참을 헤맸다. 자바스크립트를 배우던 시절에도 그랬는데, 컴퓨터사고(?)가 아직 익숙하지 않은 나로써는 어디에 메소드를 선언하고, 그 메소드를 어디서 실행하며 그 함수는 어디에서 받아온 값을 매개변수로 삼아 실행되는 것인지와 같은 구조 설계가 참으로!!! 약하다. v1은 복잡한 내용이 하나도 없어서 이렇게 짜면 어느 부분에서 참으로 불편하겠구나 했는데, v2는 어떤 장,단점이 있을지 파악하기 어렵다 :( 짜는 것도 뭐 힘들게 짰는데 뭐..암튼, 다른 사람이 이런 내용의 코드를 짰다면 어떤 식으로 설계했는지 한번 보고 싶다! 참고좀 해보게
2. Static Issue
Scanner 생성자를 메인 메소드가 아니라 클래스안에 포함한 것은 이번이 처음인데, 어쩐지 빨간줄이 직직- 가고 에러가 발생. “non-static variable key cannot be referenced from a static context” stack overflow를 참고해 scanner 앞에 static을 명시해주는 것으로 해결은 봤으나 이유는 모르겠는??? 아무래도 자바라는 언어 사용법을 안것이지, 이해가 있는것은 아닌터라 이런 부분이 나타나면 무엇때문인지 감이 전혀 없다..ㅜ 좀 찾아봐야할듯. 아무튼 static을 붙여주는것으로 해결은 봄.