키오스크 프로그램 다시 만들기
저번주에 만들었던 키오스크 프로그램의 해설 영상을 보고 내가 이해 한 부분, 아는 부분만 따서 다시 만들어 보았다.
- Menu 클래스 만들기
메뉴 클래스는 이후에 다시 음식들도 같이 사용 할 수 있게 open 클래스로 만들어서 상속 받을 수 있게끔 했다. 다만 처음에 init이라는 주 생성자를 이용하여 넘기는 건 좀 애매 해서 강의 예시에서도 사용해서 좀 익숙한 부 생성자인 constructor를 사용하여 여기에는 idx(번호),name(이름),explain(설명) 이렇게 세 가지만 생성자로 넘기는걸 만들어 두었다.
그리고 저 세개를 출력하는 println도 displayInfo라는 함수를 만들었는데 이거도 open으로 다른 클래스에서 받을 수 있게 해두었다.
- Food 클래스 만들기
푸드 클래스는 메뉴 클래스를 받아와서 여기에 가격과 카테고리를 추가하려고 한다. 카테고리는 이것이 Burger인지 drink인지 따로 분류하기 위해 들어갔다. 추가적으로 displayInfo를 받기 위해 override를 붙이고 가격과 카테고리를 넣었다.
- Order 클래스 만들기
companion object {
private var maxIdx = 1
private fun getNextIdx(): Int {
return maxIdx++
}
주문을 저장하고 이것들을 쭉 번호를 매기기 위해 이거를 넣었다.
companion object는 프로그램이 실행될때 항상 실행되어지는 것을 뜻했던거 같다.
- Main 만들고 실행해 보기
-실패...오류는 하나만 떴다. 푸드 클래스의 생성자가 문제라고 자꾸 뜬다. 결국 init에 대해 찾아보니 this를 붙이고 받아주면 되는데 내가 계속 오류났던건 번호를 붙이기 위해 넣었던 idx쪽이 문제였다. 결국 메뉴 클래스에서 부터 오더 클래스에 넣었던 컴페니언 오브젝트를 넣고 idx라고 붙였던 번호를 내가 쓰는게 아닌 얘가 알아서 실행하게끔 했다.
이제 돌아가기는 한다. 다만 해설보다 빠진게 많은데도 불구하고 줄이 좀 길다. 쓸데 없는 부분이 좀 들어간거 같다.
+이번에 계산을 위해 돈을 넣으시오 라는 문구와 입력칸을 집어 넣고 계산까지 해주는게 구현은 되었는데 다만 푸드 클래스에서 더블 대신 인트로 바꾸고 안에 입력하는 거도 toInt로 바꿔서 넣었는데도 오류가 나면서 Double이 들어가야한다고 뜬다. 어디서 잘못된 부분이 있긴 한거 같은데 끝날 때까지 찾질 못했다. 결국 입력을 2000원이면 2000.0원으로 입력해야하는 불상사가...
일단 인터넷을 찾아보고 해설영상이랑 지난 강의 영상,자료를 보고 아는 쪽만 넣었는데, 보니까 결국 설명을 못하는 부분이 아직 많은거 같다.
- return이 너무 많다
끝나는 시간이 되어서 면담을 갔는데 일단 최대한 쉽게 알려주신다고 하신다. 그리고 중간에 이걸 보여드렸는데... null이 저렇게 들어가면 안되고 return이 너무 많다고 하신다. 저런식으로 하는게 아니라고...
보다 위쪽에 변수 result를 선언하고 내려오면 저기 return들을 다 뺄 수 있고 마지막에만 return result를 넣어주면 된다고 하셨는데...아직 잘 이해는 안되는거 같다.
우선 과제 다시해보는거 보다 앱개발 강의를 먼저 넘어가보라고 하셨는데 내일부터는 이거 말고 강의듣고 새 과제에 맞춰서 좀 따라가봐야겠다.
그래도 여기까지 했으니 깃푸쉬 해주고
이번엔 말썽없이 제대로 올라갔다
이건 여기까지만 해두고 낼부터는 강의부터...
'내일배움캠프' 카테고리의 다른 글
본 캠프 19일차 (0) | 2023.12.14 |
---|---|
본 캠프 18일차 - let,filter,fold (0) | 2023.12.13 |
본 캠프 16일차 - 컬렉션(List, Map, Set) (1) | 2023.12.11 |
본 캠프 15일차 -쓰레드 (1) | 2023.12.08 |
본 캠프 14일차 (1) | 2023.12.07 |