앞선 포스팅의 방법이 결국 내용이 많아지면 구현 할 때 힘들어진다.
https://henniee.tistory.com/55
따라서 현재 포스팅 처럼 class들이 공통적으로 갖는 내용을 부모 클래스로 정하고 자식클래스에 그 내용을 할당해준다면 프로그래밍이 더 간단해 질 것이다.
package TV;
class Product {
String name;
int price;
int point;
}
class Tv1 extends Product {
public Tv1() {
name = "tv1";
price = 100;
point = 10;
}
}
class Audio1 extends Product {
public Audio1() {
name = "Audio1";
price = 200;
point = 20;
}
}
class Computer1 extends Product {
public Computer1() {
name = "Conputer1";
price = 300;
point = 30;
}
}
class Buyer1 {
int money = 1000;
int point = 0;
public void buy(Product p) { // 인자를 부모 클래스로 받음
if (money >= p.price) {
money -= p.price;
point += p.point;
System.out.println(p.name + " : 구매함");
System.out.println("money : " + money);
System.out.println("point : " + point);
} else {
System.out.println("잔액부족");
}
}
}
public class BuyingProduct {
public static void main(String[] args) {
// TODO Auto-generated method stub
Product[] prods = { new Tv1(), new Audio1(), new Computer1(), new Tv1(),
new Audio1(), new Computer1(), new Tv1(), new Audio1(), new Computer1() };
// 부모클래스 배열화
Buyer1 b = new Buyer1(); // buyer 객체화 시켜줌
for (int i = 0; i < prods.length; i++) {
b.buy(prods[i]);
// buy 메서드의 값의 인자(product p)를 배열 prods[i] 로 받아 해당 메서드를 실행
}
}
}
'JAVA' 카테고리의 다른 글
[JAVA] 객체지향 - 상속을 이용한 포켓몬 키우기 게임 (0) | 2023.03.02 |
---|---|
[JAVA] 객체지향 - 회원가입 만들기 (0) | 2023.03.02 |
[JAVA] 객체지향 - 클래스를 인자 값으로 받는 클래스 출력문 (0) | 2023.03.02 |
[JAVA] 객체지향 - VO 객체 클래스를 이용한 프로그래밍 (0) | 2023.03.02 |
[JAVA] 객체지향 - 다형성 (polymorphism) (0) | 2023.03.01 |