package TV;
class Tv2 {
String name = "Tv";
int price = 200;
int point = 20;
}
class Audio2 {
String name = "Audio";
int price = 200;
int point = 20;
}
class Computer2 {
String name = "Computer";
int price = 300;
int point = 30;
}
class Buyer2 {
int money = 1000;
int point = 0;
public void buy(Audio2 a) { // buy 생성자 안에 클래스의 인스턴스를 파라미터로 받아 사용.
// 즉 Audio2의 클래스를 인자로 받아 사용
if (money >= a.price) { // 만약에 money가 audio2 a 객체의 price 보다 크거나 같으면
money -= a.price; // money = money - price
point += a.point; // point = point + point
System.out.println(a.name + " : 구매함"); // 객체 a의 이름 + 구매 했다고 표시하고
System.out.println("money : " + money); // buy의 money 남은 값을 알려줌
System.out.println("point : " + point); // point의 point 남은 값을 알려줌
} else {
System.out.println("잔액부족");
}
}
public void buy(Computer2 c) {
if (money >= c.price) {
money -= c.price;
point += c.point;
System.out.println(c.name + " : 구매함");
System.out.println("money : " + money);
System.out.println("point : " + point);
} else {
System.out.println("잔액부족");
}
}
public void buy(Tv2 t) {
if (money >= t.price) {
money -= t.price;
point += t.point;
System.out.println(t.name + " : 구매함");
System.out.println("money : " + money);
System.out.println("point : " + point);
} else {
System.out.println("잔액부족");
}
}
}
public class 연습 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Buyer2 b = new Buyer2(); // buyer2 객체 생성
b.buy(new Tv2());
// 클래스를 인자값으로 받았드려 buy를 불러 오는데 안에 파라미터 값까지 받아온다
// 원래 같으면 b.buy(); 정도로만 불러 왔을텐데
// 현재 메서드 오버로딩 된 것들이 클래스타입임으로
// 인자값을 (new클래스이름)으로 불러 와야 한다.
b.buy(new Audio2());
b.buy(new Computer2());
}
}
'JAVA' 카테고리의 다른 글
[JAVA] 객체지향 - 회원가입 만들기 (0) | 2023.03.02 |
---|---|
[JAVA] 객체지향 - 상속과 배열로 간단화 (0) | 2023.03.02 |
[JAVA] 객체지향 - VO 객체 클래스를 이용한 프로그래밍 (0) | 2023.03.02 |
[JAVA] 객체지향 - 다형성 (polymorphism) (0) | 2023.03.01 |
[JAVA] 객체지향 - 메소드 오버라이딩 (method overriding) (0) | 2023.03.01 |