반응형
조상type의 배열에 자손들의 객체를 담을 수 있다
public class ManyKindOfObjectArray {
public static void main(String[] args) {
Buyer2 b = new Buyer2();
b.buy(new Tv2());
b.buy(new Computer2());
b.buy(new Audio2());
b.summary();
System.out.println("현재 남은 돈은 " + b.money + "만원입니다.");
System.out.println("현재 보너스점수는 " + b.point + "점입니다.");
}
}
class Product2 {
int price;
int point;
Product2(int price) {
this.price = price;
this.point = (int) (price / 10.0); // 제품가격의 10%가 bonusPoint
}
}
class Tv2 extends Product2 {
Tv2() {
super(200);
}
public String toString(){return "Tv";}
}
class Computer2 extends Product2 {
Computer2(){
super(300);
}
public String toString() {return "Computer";}
}
class Audio2 extends Product2 {
Audio2() {
super(100);
}
public String toString(){return "Audio";}
}
class Buyer2 {
int money = 1000;
int point = 0;
Product2[] cart = new Product2[10]; // 구입한 물건을 담을 배열
int i = 0;
// 구매한 물품을 계산한다
void buy(Product2 p) {
if (money < p.price) {
System.out.println("잔액부족");
return;
}
money -= p.price;
point += p.point;
cart[i++] = p;
System.out.println(p + "을/를 구입하셨습니다.");
}
// 구매한 물품에 대한 정보를 요약한다
void summary() {
int sum = 0;
String itemList = "";
for (int i = 0; i < cart.length; i++) {
if(cart[i] == null) break;
sum += cart[i].price;
itemList += cart[i] + ", ";
}
System.out.println("구입하신 물품의 총금액은 " + sum + "만원입니다.");
System.out.println("구입하신 제품은 " + itemList + "입니다.");
}
}
이전 게시글에서 이번 강의내용이 추가된 코드
코드가 너무 이쁘고 멋지다.
memory가 쌓이는 걸 보지만 말고 그리면서 하라고 하셔서 찔리고
이 명강의가 당시에 조회수가 없었다니 충격적이었다.
반응형
'☕ 자바 JAVA > ☕ 클래스와 함수 Class & Method' 카테고리의 다른 글
[JAVA]interface 선언, 상속, 구현 (0) | 2024.05.24 |
---|---|
[JAVA]추상 클래스 abstract class (1) | 2024.04.09 |
[JAVA]다형성의 장점1:매개변수의 다형성 (0) | 2024.04.07 |
[JAVA]instanceof 연산자:형변환 전 확인용도 (0) | 2024.04.06 |
[JAVA]참조변수의 형변환 (0) | 2024.04.04 |