예습/code
여러 종류의 객체를 배열로 다루기
밀김
2023. 1. 13. 12:05
728x90
class Product2{ //부모 Product2클래스 생성
int price;
int bonusPoint;
Product2(int price){ //반환타입이 int형인 변수price를 갖고있는 Product2매서드
this.price = price; //매서드 프라이스의값은 클래스 프라이스와 같다
bonusPoint = (int)(price/10.0); //클래스 프라이스 값을 10.0으로 나누고 그것을 int형으로 반환하는걸 클래스 보너스에 대입
}
}
class Tv2 extends Product2{
Tv2(){ //매개변수가 없는 매서드 Tv2
super(100); //부모인 프로덕트2 매서드(int price) 에다가 100을 대입
}
public String toString() {
return "티비";
}
//문자형의 투스트링 매서드. 리턴값을 문자로 반환
}
class computer2 extends Product2{
computer2(){ //매개변수가 없는 매서드 computer2
super(200); //부모인 프로덕트2 매서드(int price) 에다가 200을 대입
}
public String toString() {
return "컴퓨터";
}
//문자형의 투스트링 매서드. 리턴값을 문자로 반환
}
class Audio2 extends Product2{
Audio2(){ //매개변수가 없는 매서드 Audio2
super(50); //부모인 프로덕트2 매서드(int price) 에다가 50을 대입
}
public String toString() {
return "오디오";
}
//문자형의 투스트링 매서드. 리턴값을 문자로 반환
}
class Buyer2{
int money = 1000;
int bonusPoint = 0;
int i =0;
//초기화
Product2[] cart = new Product2[10];
//cart라는 객체 생성. 거기에 0~9까지의 배열을 가진 Product2객체를 연결한다
void buy(Product2 p) { //Product2타입인 변수p를 buy매서드에 대입한다(p는 객체가 아님. 변수p)
if(money < p.price) { //물건값보다 내가 가진 돈이 적다면
System.out.println("잔액부족");
return;
} //잔액부족 문구를 반환한다
money -= p.price; //가진돈에서 물건값만큼 빼걸 머니에 저장하고
bonusPoint += p.bonusPoint; //갖고있는 포인트에서 보너스포인트 점수까지 더한걸 보너스포인트에 저장하고
cart[i++] = p; //cart[0]~[9] = cart[i]로 표현!!!!!!!!!
System.out.println(p.toString() + "를 구입");
}
void summary() { //매개변수가 없는 써머리 매서드(구입한 물건들에 대한 항목을 보여주는 용도)
int sum = 0;
String itemList = "";
//초기화
for(int i=0; i<cart.length; i++){ //i<cart.length(0~9)
if(cart[i]==null) break; //만약 객체cart의 i에 null(아무것도없다)면 구문을 종료해라
sum += cart[i].price; //객체cart의 i가 가리키고 있는 모든 가격값을 sum값과 더하고 그 값을 sum에 저장(=총액)
itemList += cart[i].toString() + ","; //객체cart의 i가 가리키고있는 모든 투스트링과 아이템리스트값을 합쳐서 그 값을
//아이템 리스트에 문자열로 저장
} //+= : 오른쪽 피연산자의 값을 왼쪽 피연산자와 더해서 왼쪽 피연산자에 저장.
//-= : 오른쪽 피연산자의 값을 왼쪽 피연산자에서 빼서 왼쪽 피연산자에 저장합니다.
System.out.println("구입한 물품 총액은"+sum+"입니다");
System.out.println("구입한 제품은"+itemList+"입니다");
}
}
class Ex7_8 {
public static void main(String args[]) {
Buyer2 b = new Buyer2(); //객체b 생성
b.buy(new Tv2()); //객체b가 가리키는buy에 객체tv2 저장
b.buy(new computer2()); //객체b가 가리키는buy에 객체com2 저장
b.buy(new Audio2()); //객체b가 가리키는buy에 객체audio2 저장
b.summary(); //객체b로 summary 가리킴
}
}
너무어렵다!!!!!!!!!
728x90