객체 지향 예제 프로그래밍
19 Aug 2021 -
1 minute read
강의에서 본 예제를 응용해 문제를 만들어봤다 ^~^
Pierre, Alice, Lucas는 카페에 갔다.
Pierre는 5000원을 가지고 있었고, CafeJava에서 4000원 짜리 아메리카노를 마셨다.
Alice와 Lucas는 각각 10000원, 7000원을 가지고 있었고, BonCafe에서 5500원짜리 카페라떼를 마셨다.
=> 각 손님의 남은 돈, 각 카페에서 팔린 음료의 개수와 수입 구하기
Customer.java
public class Customer {
String name;
int money;
public Customer(String name, int money) {
this.name = name;
this.money = money;
}
public void coffeeAtCafeJa(CafeJava cafeJa) { //CafeJava 객체 넘어옴
cafeJa.buy(4000);
this.money -= 4000;
//4000원 지불
}
public void coffeeAtCafeVa(BonCafe cafeVa) {
cafeVa.buy(5500);
this.money -= 5500;
}
public void showInfo() {
System.out.println(name + "의 남은 돈은 " + money + "원 입니다.");
}
}
CafeJava.java
public class CafeJava {
String menu;
int menuCount;
int money;
public CafeJava(String menu) {
//Main에서 menu이름 받기
this.menu = menu;
}
public void buy(int money) {
//money = 손님이 지불한 금액 = 카페 수입
this.money += money;
menuCount++;
}
public void showCafeJavaInfo() {
System.out.println("CafeJava에서 팔린 " + menu + "의 수는 "
+ menuCount + "개 이고, 수입은 " + money + "원 입니다.");
}
}
BonCafe.java
public class BonCafe {
String menu;
int menuCount;
int money;
public BonCafe(String menu) {
this.menu = menu;
}
public void buy(int money) {
//money = 손님이 지불한 금액 = 카페 수입
this.money += money;
menuCount++;
}
public void showBonCafeInfo() {
System.out.println("BonCafe에서 팔린 " + menu + "의 수는 "
+ menuCount + "개 이고, 수입은 " + money + "원 입니다.");
}
}
Main.java
public class Main {
public static void main(String[] args) {
Customer customerP = new Customer("Pierre", 5000);
Customer customerA = new Customer("Alice", 10000);
Customer customerL = new Customer("Lucas", 7000);
CafeJava menuJava = new CafeJava("아메리카노");
customerP.coffeeAtCafeJa(menuJava);
BonCafe menuBon = new BonCafe("카페라떼");
customerA.coffeeAtCafeVa(menuBon);
customerL.coffeeAtCafeVa(menuBon);
customerP.showInfo();
customerA.showInfo();
customerL.showInfo();
menuJava.showCafeJavaInfo();
menuBon.showBonCafeInfo();
}
}