본문 바로가기
study/Java

[Java] 23. Test1 (각 클래스를 생성하고 출력하기)

by 금이패런츠 2022. 3. 21.
728x90
반응형
package chap7;
/*
1. Food2 클래스
멤버 변수 : 가격(price)과 포인트(point)
생성자 : 식품의 객체 생성시 가격을 입력받아야 하고, 가격의 10%를 포인트로 저장한다.
식품의 종류는 과일(Fruit2),음료(Drink2),과자(Snack2)로 나눠 진다.

Fruit2 클래스 : Food2 클래스의 하위 클래스
Drink2 클래스 : Food2 클래스의 하위 클래스
Snack2 클래스 : Food2 클래스의 하위 클래스

과일 클래스는 당도(brix)를, 음료는 용량(ml), 과자는 무게(gram)을 멤버로 가진다
과일의 종류로는 사과(Apple2),복숭아(Peach2),
음료의 종류로는 콜라(Cock2) 와 사이다(Sidar2)
과자의 종류로는 비스킷(Biscuit2)과 쿠키(Cookie2) 가 있다.
사과,복숭아, 콜라, 사이다,비스킷,쿠키 클래스에 toString() 메서드를 구현하고
각각의 이름을 리턴한다.
 */
/*
 *2. Buyer2 클래스
 *   멤버변수 : 돈(money)=10000, 포인트(point), 구매건수(cnt)
 *            장바구니(cart) : 상품저장하는 배열 
 *            
 *   멤버메서드
 *     buy(Food2) :
 *       소유 금액보다 물품값이 큰경우 "잔액부족"메세지 출력하고 메서드 종료
 *       물건 구매시 보유금액에서 물품가격만큼 차감
 *       물품의 포인트 만큼 포인트 증가.
 *       물품의 물품명과 가격을 화면에 출력.
 *       해당 물품은 장바구니에 추가. 구매건수 1 증가
 *     summary() :
 *       장바구니를 조회하여 구매한 물품의 목록과 총 가격과 현재 포인트를 출력하기.
 *       과일의 갯수,과일 구매 금액,과일 구매 목록
 *       음료의 갯수,음료 구매 금액,음료 구매 목록  
 *       과자의 갯수,과자 구매 금액,과자 구매 목록 출력하기  
 *       
 * [결과]
===Buyer2.buy(Food2 f) 메서드 실행 ===
사과를(을) 1000가격에 구입, 포인트 100증가
===Buyer2.buy(Food2 f) 메서드 실행 ===
복숭아를(을) 1000가격에 구입, 포인트 100증가
===Buyer2.buy(Food2 f) 메서드 실행 ===
콜라를(을) 500가격에 구입, 포인트 50증가
===Buyer2.buy(Food2 f) 메서드 실행 ===
사이다를(을) 1500가격에 구입, 포인트 150증가
===Buyer2.buy(Food2 f) 메서드 실행 ===
비스킷구매시 잔액부족
===Buyer2.buy(Food2 f) 메서드 실행 ===
쿠키를(을) 500가격에 구입, 포인트 50증가
고객 잔액:5500
고객 포인트:450
===Buyer2.summary() 메서드 실행 ===
총 구매금액 : 4500, 구매건수:5
총 구매목록 : 사과,복숭아,콜라,사이다,쿠키,
과일 구매금액 : 2000, 구매건수:2, 과일 구매목록 : 사과,복숭아,
음료 구매금액 : 2000, 구매건수:2, 음료 구매목록 : 콜라,사이다,
과자 구매금액 : 500, 구매건수:1, 과자 구매목록 : 쿠키,

 */
public class Test0315_1 {
	public static void main(String[] args) {
		Apple2 apple = new Apple2(1000,10.5);
		Peach2 peach = new Peach2(1000,13.5);
		Cock2 cock = new Cock2(500,500);  
		Sidar2 sidar = new Sidar2(1500,1000);
		Biscuit2 bis = new Biscuit2(10000,500);
		Cookie2 cookie = new Cookie2(500,5000);
		Buyer2 b = new Buyer2();
		b.buy(apple);		b.buy(peach);
		b.buy(cock);		b.buy(sidar);
		b.buy(bis);  		b.buy(cookie);
		System.out.println("고객 잔액:" + b.money);
		System.out.println("고객 포인트:" + b.point);
		b.summary();
	}
}
728x90
반응형