My Melody Is Cute BurgerQueen 주문 프로그램 만들기 1
본문 바로가기

실습👁️‍🗨️/연습

BurgerQueen 주문 프로그램 만들기 1

 

 

🌼상품들의 공통점과 차이점 파악

어떤 클래스를 만들지 결정하기 위해서 어떤 객체가 필요한지 알아야한다.

공통점과 차이점으로 분리

- 공통적으로 이름, 열량, 가격, 고유번호가 있고

- 카테고리별로 선택하는 옵션이 다르다.

공통점은 상위클래스에 정의하여 추상화 시키고

하위클래스들이 상위클래스를 상속받게 하면

공통점에 해당하는 필드를 상속받아 사용할수있다

 

🌼클래스 상속 구조 설계

Product

이름 열량 가격 고유번호

|

Burger Set / Hamburger / Side / Drink

햄버거 세트 / 세트여부 / 케첩개수 / 빨대유무

|

새우버거세트 치킨버거세트 / 새우버거 치킨버거 / 감자튀김 어니언링 / 코카콜라 제로콜라

 

햄버거 세트는 햄버거+사이드+음료로 구성 세트 객체를 만들어서 속성으로 나누기

햄버거 세트는 클래스간의 포함관계를 사용한다(클래스 멤버로 다른 클래스 타입의 참조변수를 선언)

 

🌼상품 클래스 작성

클래스와 필드를 작성하고 Getter,Setter를 만들어 준다 접근 제어자는 private / 캡슐화 

( boolean 타입 반환 시 get이 아닌 is접두사를 붙인다)

 

🌼디렉터리 구조 정리하기

패키지 : 특정 목적을 공유하는  클래스 및 인터페이스들을 묶은 것

패키지가 없으면 자동으로  default패키지로 포함되는데

default패키지의 클래스들은 다른 클래스에서 import를 못하게 된다!

 

 

🌼상품 정보를 저장할 저장소 만들기

상품정보를 입력해서 인스턴스화 시키고 상품 저장소 역할을 하는 객체를 만든다

ProductRepository에 필드로 배열변수를 정의해서 모든 상품을 배열에 넣어서 관리한다

타입이 다른 상품들은 다형성을 활용한다

다형성 : 상위 클래스 타입의 참조변수로

하위 클래스 타입의 객체를 참조할 수 있는것

Product product1 = new Hamburger(...);
Product product2 = new Side(...);
Product product3 = new Drink(...);

상위클래스 Product 타입의 변수에 할당 - 업캐스팅

Product[] products = {
	new Hamburger(...),
	new Side(...),
	new Drink(...),
	...
};

 

- 상품정보는 바뀌는값이 아니고 바뀌면 안됨 상수로 지정

-햄버거 세트는 사용자의 선택에 따라 구성되는 것이여서 저장소에 미리 만들어두지 않는다

-상품 옵션은 사용자로부터 입력받은 값을 사용할 것, 기본값은 임의로 지정

햄버거 : 단품 /세트 여부 - 단품을 기본값으로 설정 : isBurgerSet false로 초기화

사이드 : 케첩개수 - 1개를 기본값으로 설정 : ketchup 1로 초기화

음료 : 빨대 유무 - 빨대를 제공하는 것을 기본값으로 설정 : hasStraw true로 초기화