🌼상품들의 공통점과 차이점 파악
어떤 클래스를 만들지 결정하기 위해서 어떤 객체가 필요한지 알아야한다.
공통점과 차이점으로 분리
- 공통적으로 이름, 열량, 가격, 고유번호가 있고
- 카테고리별로 선택하는 옵션이 다르다.
공통점은 상위클래스에 정의하여 추상화 시키고
하위클래스들이 상위클래스를 상속받게 하면
공통점에 해당하는 필드를 상속받아 사용할수있다
🌼클래스 상속 구조 설계
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로 초기화
'실습👁️🗨️ > 연습' 카테고리의 다른 글
BurgerQueen 주문 프로그램 만들기 3 (0) | 2023.10.28 |
---|---|
BurgerQueen 주문 프로그램 만들기 2 (0) | 2023.10.28 |
김밥 키오스크 + (0) | 2023.10.25 |
텍스트 스타크래프트 프로그램(this.) (0) | 2023.10.20 |
초간단(?) 김밥 주문프로그램 키오스크 만들기 (0) | 2023.10.19 |