Language/Java

[Java] 실습 FruitSalesVer03

arajo 2022. 8. 8. 17:11
728x90
package fruitSales.ver03;

//--------------------------------------------------------------------------
//과일 판매자
//--------------------------------------------------------------------------
class FruitSeller {
	int numOfApple;
	int myMoney;
	final int APPLE_PRICE;	// 상수는 선언과 동시에 값을 지정해야 하나, 초기화를 통해서 지정할 수 있다.
	
	public FruitSeller() {
		// myMoney = 15000;
		// numOfApple = 200;
		// APPLE_PRICE = 1500; 아래의 한줄처럼 할 수 있다.
		this(15000, 200, 1500);
	}
	public FruitSeller(int money, int num) {
		this(money, num, 1500);
	}
	public FruitSeller(int money, int appleNum, int price) {
		myMoney = money;
		numOfApple = appleNum;
		APPLE_PRICE = price;
	}
	public int saleApple(int money) {
		int num = money / APPLE_PRICE;
		myMoney += money;
		numOfApple -= num;
		return num;
	}
	public void showSaleResult() {
		System.out.println("남은 사과 : " + numOfApple);
		System.out.println("판매 수익 : " + myMoney);
	}
} // - End class FruitSeller

//--------------------------------------------------------------------------
// 과일 구매자
//--------------------------------------------------------------------------
class FruitBuyer {
	int myMoney;
	int numOfApple;
	
	public FruitBuyer(int money) {	// 생성자를 통해 돈을 준비한다.
		myMoney = money;
		numOfApple = 0;
	}
	public void buyApple(FruitSeller seller, int money) {
		numOfApple += seller.saleApple(money);	// 돈을 주고 사과를 받는다.
		myMoney -= money;	// 돈을 구매한 만큼 차감한다.
	}
	public void showBuyResult() {
		System.out.println("현재 잔액 : " + myMoney);
		System.out.println("사과 개수 : " + numOfApple);
	}
} // - End class FruitBuyer

//--------------------------------------------------------------------------
// 시장
//--------------------------------------------------------------------------
public class FruitSalesVer03 {

	public static void main(String[] args) {
		FruitSeller seller1 = new FruitSeller();				// 사과 장수 1	
		FruitSeller seller2 = new FruitSeller(0, 150, 1300);	// 사과 장수 2

		FruitBuyer buyer1 = new FruitBuyer(15000);	// 과일 구매자 1		
		FruitBuyer buyer2 = new FruitBuyer(20000);	// 과일 구매자 2
		
		buyer1.buyApple(seller2, 5000);
		buyer2.buyApple(seller1, 3000);
		
		System.out.println("과일 판매자 1의 현황");
		seller1.showSaleResult();
		System.out.println("과일 판매자 2의 현황");
		seller2.showSaleResult();
		
		System.out.println("과일 구매자 1의 현황");
		buyer1.showBuyResult();
		System.out.println("과일 구매자 2의 현황");
		buyer2.showBuyResult();

	}

} // - End public class FruitSalesVer03

실행 결과