본문 바로가기
혼자서 개발새발

카페 주문 앱을 객체로 정리해보자!

by 휴일이 2022. 9. 30.

 

오늘 학원에서 객체를 배워서

예전에 만들었던 카페 주문 앱 코드를

클래스와 메소드로 정리해보았다!

 

 

먼저 메인 클래스!

 

package CafeApps;

import java.util.Scanner;

public class CafeService {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		CafeTest c = new CafeTest(); //객체 불러오기
		
		c.hello(sc); //처음 시작, 메뉴 고르는 부분
		c.Yes(); //입력받은 메뉴값을 저장하는 부분
		c.pay(sc); //카드인지 현금인지 물어본다
		c.gogo(sc); //카드라면 카드번호/포인트번호, 현금이라면 포인트번호만 물어본다
		c.end(); //영수증 출력
	}

}

 

상당히 간결해진 것을 볼 수 있다!>.<

 

 

CafeTest 객체도 확인해보자

 

package CafeApps;

import java.util.Scanner;

public class CafeTest {
	
	Scanner sc; //입력받을 스캐너
	String menu; //아메리카노,스무디,캐모마일
	String point; //포인트번호 받기
	String don; // 카드냐? 현금이냐? 카드면 카드넘입력
	String cardN; //카드 번호
	String i; //스캐너로 입력받은 값을 저장하는 변수
	
	void input(Scanner sc) { //입력값을 받는 부분
		i = sc.next();
	}
	
	void hello(Scanner sc) { //매개변수로 입력값 받기, 첫 부분
		System.out.println("휴일 카페에 오신 것을 환영해요!");
		System.out.println("1.아메리카노");
		System.out.println("2.스무디");
		System.out.println("3.캐모마일");
		System.out.print("메뉴를 숫자,문자로 입력해주세요!>");
		input(sc);
		menu = i;
	}
	
	void Yes() { //주문 메뉴를 저장하는 부분, 스캐너 입력값에 따라 저장
		if(menu.equals("아메리카노") || menu.equals("1")) {
			menu = "아메리카노";
		} else if(menu.equals("스무디")||menu.equals("2")) {
			menu = "스무디";
		} else if(menu.equals("캐모마일")||menu.equals("3")) {
			menu = "캐모마일";
		}
		
	}
	
	void pay(Scanner sc) {
		System.out.println("카드입니까 현금입니까?");
		System.out.println("1 카드");
		System.out.println("2 현금");
		System.out.print("번호나 이름입력>");
		input(sc);
		don = i; //입력받은 값 don에 넣어줌(1,카드 || 2: 현금)
	}
	
	void gogo(Scanner sc) {
		//don 입력값에 따라 실행
		if(don.equals("카드")||don.equals("1")) {
			System.out.println("카드 번호를 입력하세요");
			input(sc);
			cardN=i;
			System.out.println("포인트 번호를 입력하세요");
			input(sc);
			point=i;
		} else if(don.equals("현금")||don.equals("2")) {
			System.out.println("포인트 번호를 입력하세요");
			input(sc);
			point = i;
		}
		
		
	}
	
	void end() {
		if(don.equals("카드")||don.equals("1")) { //카드일 경우 카드번호까지 출력
			System.out.println("======영수증======");
			System.out.println("주문하신 메뉴는 "+menu);
			System.out.println("카드 번호는 "+cardN);
			System.out.println("적립 번호는 "+point);
			System.out.println("주문해주셔서 감사합니다~");
		} else if(don.equals("현금")||don.equals("2")) { //현금이라면 카드번호 제외하고 출력
			System.out.println("======영수증======");
			System.out.println("주문하신 메뉴는 "+menu);
			System.out.println("적립 번호는 "+point);
			System.out.println("주문해주셔서 감사합니다~");
		}
	}
	
}

 

전에 중구난방 코드와 다르게

깔꼼하게 정리된 것을 알 수 있다^-^/

 

 

출력값은 전과 동일하다

 

객체 지향 프로그래밍...

어렵지만 신기하고 재미있었다

더 열심히 해야지!

728x90