package ch98;
public class Product {
int price; // 제품의 가격
int bonusPoint; // 제품구매시 제공하는 보너스 점수
Product(int price) {
this.price = price;
bonusPoint = (int) (price / 10.0); // 보너스 점수는 제품가격의 10% 제공
}
} // end of Product class
package ch98;
public class Tv1 extends Product{
Tv1() {
// 조상클래스(Product)의 생성자 Product(int price)를 호출
super(100); // TV가격을 100만원
}
// Object 클래스의 toString()을 오버라이딩
public String toString() {
return "Tv";
}
}
package ch98;
public class Computer extends Product {
Computer() {
super(200); // 컴퓨터의 가격을 200만원으로 한다.
}
// Object 클래스의 toString()을 오버라이딩
public String toString() {
return "Computer";
}
}
package ch98;
public class Buyer { // 고객
int money = 1000; // 가지고있는 금액
int bounsPoint = 0; // 가지고있는 보너스점수
void buy(Product p) {
if (money < p.price) {
System.out.println("잔액이 부족해 물건을 구매할 수 없습니다.");
return;
}
money -= p.price; // 가진돈에서 구입한 물건의 값을 뺀다
bounsPoint += p.bonusPoint; // 구입한 물건의 보너스점수를 추가
System.out.println(p + "을/를 구매하였습니다.");
}
}
package ch98;
public class MainTest {
public static void main(String[] args) {
Buyer b = new Buyer();
b.buy(new Tv1());
b.buy(new Computer());
System.out.println("현재 남은 돈은 " + b.money + "만원 입니다.");
System.out.println("현재 보너스 점수는 " + b.bounsPoint + "점 입니다.");
}
}
Tv을/를 구매하였습니다.
Computer을/를 구매하였습니다.
현재 남은 돈은 700만원 입니다.
현재 보너스 점수는 30점 입니다.
'Java > Java 연습문제' 카테고리의 다른 글
이름 붙은 반복문 (0) | 2023.08.12 |
---|---|
break문과 continue 문 예제 (0) | 2023.08.12 |
[JAVA] 배열의 활용 - 총합과 평균, 최대값과 최소값, 섞기(shuffle) (0) | 2023.08.09 |
[JAVA] 상속 구조로 클래스 만들어보기 (0) | 2023.08.08 |
[JAVA] 클래스 정의 및 활용 실습 (0) | 2023.07.28 |