2023년 10월 21일

2023. 10. 23. 17:21· TIL
목차
  1. 과제
  2. switch - case 표현식
  3. class 상속
728x90
반응형
손은 눈보다 빠르다.

눈은 손보다 게으르다.

나는 항상 이 말들을 곱씹어본다.

근데 이번만큼은 손이 더 느렸다...

객체

붕어빵 틀에서 찍어낸 붕어빵
과 같은 논리로
공장(부모)에서 찍어낸 자동차(자식)와
그 부품(메서드)들

과제

키오스크를 구현하는 과제다.
머리로 그려보면 그렇게 어려워 보이지 않아서 다른 공부를 하다 주말이 되어서야 손 대기 시작했다.

while 내부에서 switch 로 동작 시키며 기계를 터트릴때까지 영원히 종료되지 않는 방식으로 구현하기로 했다.

    int phaseController = 5; // 메인페이즈를 5에 두어, 초기 화면으로 돌아갈때 받는 index를 5로 설정했다.

    while (true) {

    switch(phasecontroller) {
        case 5 :
            메인 메뉴
        case 1:
            버거 메뉴
        case 2:
            드링크 메뉴
        case 3:
            오더 메뉴
        case 4:
            주문 취소하기
        default :
            오류 문구 출력
            case : 5 로 이동

작성하면서 깨닫는 부분이 있었다.
메인메뉴를 default에 두고 phaseController를 0으로 놓고 시작했다면 조금 더 가독성 높은
코드를 완성할 수 있었을것 같다. 덕분에 예기치 않은 버그도 하나 있다는걸 알게 되었다.
예외처리를 하나 삽입하여 처리하기로 했다.
지금 와서 수정하기엔 너무 먼 길을 와버렸다.
아예 전면 리팩토링을 거치지 않는 이상 손댈 방법이 없다...

switch - case 표현식

기존의 switch

switch ( caseInt ) {
    case 1 :
        실행문 1
        break;
    case 2 :
        실행문 1
        break;
    case 3 :
        실행문 2
        break;
    default :
        실행문;
}

switch 표현식

switch ( caseInt ) {
    case 1, 2 -> 실행문 1;
    case 3 -> 실행문 2;
    default -> 실행문;
        yield "반환";

가독성이 조금 떨어지게 되긴 하지만 작성할때는 매우 편리하다는걸 느꼈다.
또한 yield이라는 메서드를 사용할 수 있는데 이는 return과 같다.
사용성에 따라 switch 내부에서 목적을 명확하게 하기 위해 yield를 사용하는게 맞다고는 하는데
솔직히... 이거나 저거나... 아직 필요성 부분에서 의미를 잘 모르겠다.

class 상속

MENU 라는 최 상위 클래스 (super class?) 에 버거와 드링크를 하위 클래스로 주고,
그 아래에 각 메뉴들을 넣어주었다.
즉, 메뉴 - 음식종류 - 세부항목 순서인 셈.
나누다 보니 개판이 되어버렸다.
이에 대한 부분은 튜터님한테 질문을 하며 보완할 방법 혹은 일반적인 방법을 배워야겠다.

728x90
반응형

'TIL' 카테고리의 다른 글

2023년 10월 23일  (0) 2023.10.23
2023년 10월 22일  (1) 2023.10.23
2023년 10월 20일  (1) 2023.10.23
2023년 10월 19일  (1) 2023.10.23
2023년 10월 18일  (0) 2023.10.23
  1. 과제
  2. switch - case 표현식
  3. class 상속
'TIL' 카테고리의 다른 글
  • 2023년 10월 23일
  • 2023년 10월 22일
  • 2023년 10월 20일
  • 2023년 10월 19일
정유감
정유감
반응형
정유감
정말유감이야
정유감
전체
오늘
어제
  • 분류 전체보기 (57)
    • TIL (48)
    • KPT (4)
    • TMI (3)
    • BLOG (0)
    • DIARY (0)
    • 포스팅용 메모 (0)
    • AS (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 홀수 짝수
  • 비트마스크
  • Comparator
  • 자연수 뒤집어 배열로 만들기
  • mapToInt
  • kpt
  • markdown
  • toBinary
  • isBefore
  • 약수의 합
  • 하이퍼링크?
  • Til
  • Summit
  • 백트래킹
  • 에이닷
  • 완전탐색
  • 브루트포스
  • euclidean
  • 순열
  • contains

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.1
정유감
2023년 10월 21일
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.