728x90

추상클래스 4

kiosk 과제 lv4-인터페이스 구현

kiosk 과제 lv3까지는 주문시 메뉴선택기능만 있었는데 lv4부터는 주문시 가격차감 및 잔액 표시 기능까지 추가하였다. lv3까지와 마찬가지로 클래스별로 기능을 나눴다. 먼저 작성한 파일은 Food.kt 파일이고, 인터페이스(바디가 없는 메서드들의 모음)로 구현했다. package com.ellycrab.kiosklv4 interface Food { //대분류 메뉴 val categoryName:String //소분류 메뉴 val foodOptions:List fun displayOptions() fun orderItem(choice:Int):Pair? } Sandwiches Wraps Salads 클래스에서는 Food클래스를 상속 받는다. package com.ellycrab.kiosklv4 cla..

과제/키오스크 2024.03.13

kiosk lv3-추상클래스 구현

kiosk lv2에서는 추상클래스를 구현하지 않았다. 그래서 lv3에서는 추상클래스 Food를 나머지 (Salads, Sandwiches , Wraps) 클래스에서 상속을 받을 수 있도록 설계했다. 먼저 Food.kt을 작성했고, 코드는 아래와 같이 작성했다. package com.ellycrab.kiosklv3 open class Food(val foodOptions:List,val foodCategory: String) { //대분류 fun displayOptions(){ println("$foodCategory 카테고리 선택:") foodOptions.forEachIndexed { index, value -> println("${index+1}.$value") } } //세부메뉴 open fun o..

과제/키오스크 2024.03.12

Calculator lv4 추상클래스 설계

Calculator 과제를 수행하면서 lv4가 가장 어려웠다. lv3까지는 lv1의 내용을 복붙해서 기능만 나눴기때문에 파일만 추가해주고 끝이었었다. 하지만 아직도 추상클래스에대한 사용법이 미숙해서 어려웠던것 같다. 원해 파일구성은 6파일이었으나, 계산을수행하는 파일의 코드가 길어져서 RunningCalculate.kt파일과 Calculator.kt파일로 나눴다. [AbstractOperation.kt] package com.ellycrab.calculatorlv4 open abstract class AbstractOperation { //자식에게서만 사용할 수 있도록 protected로 설정함, 모든 연산에서 형변환은 공통임 protected fun convertToDouble(str: String?)..

과제/계산기 2024.03.07

Calculator lv1~lv4

Calculator과제를 통해서 개념정리를 할 수 있었다. 맨처음 readLine()이 아무리 터미널 창에 쳐도 에러만 떠서 포기하려했었으나, 이번 주차는 화면에 중점을 두기보단 기초개념 복습 및 정리기간이었기 때문에 어떻게든 찾아서 해결했다. 문제는 이러했다. 애뮬레이터 버튼을 눌러서 오류가 났었던 것이었다 ㅎㄷㄷ 이것때문에 아까운 시간을 날렸었던것 같다. 나는 아래와 같이 다시 프로젝트를 시작했다. 이상태에서 시작했어야했고 처음부터 나는 Empty view를 생성해서 망했던것 같다. 그 후는 실행이 정상적으로 되었다. lv1~lv4까지 구현해보았다. lv1: 더하기, 빼기, 나누기, 곱하기 연산을 수행할 수 있는 Calculator 클래스를 만들고, 클래스를 이용하여 연산을 진행하고 출력하기 lv2:..

과제/계산기 2024.03.07
728x90