정구리의 우주정복
[Java] 객체를 배열로 다루기 본문
반응형
객체를 배열로 만들어서 사용하는 방법을 알아보아요옹
만약 Drink.java 에 name,totalNum,totalPrice 가 정의되어있다고 가정하고
DrinkMain.java 에 Drink 객체를 생성해서 사용한다고 가정해보자
만약 객체를 3개 생성한다고 하면
Drink d1 = new Drink();
Drink d2 = new Drink();
Drink d3 = new Drink();
d1.name = "정구링";
. . .
이런식으로 사용할 수 있다 하지만 객체를 배열로 생성한다면 어떨까 ?!?!
Scanner sc = new Scanner(System.in);
Drink d[] = new Drink[3];
for(int i=0; i<3; i++){
d[i] = new Drink();
d[i].name = sc.next();
}
이런식으로 만들면 객체를 배열로 생성할 수 있다 !!
여기서 중요한 것은 Drink d[] = new Drink[3]; 이후에
d[i] = new Drink(); 이렇게 해 줘야지 사용할 수 있다는것 !!!!
public class Drink {
String name;
int totalNum;
int totalPrice;
void output() {
System.out.printf("---%s---\n",name);
System.out.printf("총 판매 수량 : %d\n",totalNum);
System.out.printf("총 판매 금액 : %d\n",totalPrice);
}
}
public class DrinkMain {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("음료 메뉴 수량 > ");
int drinkNum = sc.nextInt();
Drink drink[] = new Drink[drinkNum];
int price[] = new int[drinkNum];
for(int i = 0; i<drinkNum;i++) {
System.out.print("음료 이름 입력 > ");
drink[i] = new Drink();
drink[i].name = sc.next();
}
for(int i=0; i<price.length; i++ ) {
System.out.printf("%s 의 가격 입력 > ",drink[i].name);
price[i] = sc.nextInt();
}
boolean check = true;
//현재 주문하는 애들 개수
int nowOrder[] = new int[drinkNum];
while(check) {
System.out.println("### 선택 ###");
System.out.println("1. 주문 ");
System.out.println("2. 결제 ");
System.out.println("3. 총 매출 현황 ");
System.out.println("0. 프로그램 종료 ");
System.out.print(">> ");
int menu = sc.nextInt();
switch(menu) {
case 0:
check = false;
return;
case 1:
//화면에 메뉴 뿌려주기
System.out.println("### 메뉴 ###");
for(int i=0; i<drink.length; i++) {
System.out.printf("%d. %s 가격 : %d\n",(i+1),drink[i].name,price[i]);
}
//메뉴 선택하기
System.out.printf("메뉴 선택 > ");
int order = sc.nextInt();
System.out.printf("개수 입력 > ");
int count = sc.nextInt();
nowOrder[order-1] += count;
break;
case 2:
//결제 -> 어떤거 장바구니에 담겼는지 출력하기
//담긴 애들 총 매출 현황 올려주기
//장바구니 초기화
System.out.println("### 결제 하기 ###");
//뿌려주기
for (int i=0; i<drink.length;i++) {
System.out.printf("---%s---\n",drink[i].name);
System.out.printf("총 주문 수량 > %d\n",nowOrder[i]);
System.out.printf("총 주문 금액 > %d\n",price[i]*nowOrder[i]);
drink[i].totalNum += nowOrder[i];
drink[i].totalPrice += price[i]*nowOrder[i];
}
System.out.println("결제 완료 되었습니다.");
//장바구니 초기화
for(int i=0;i<nowOrder.length;i++) {
nowOrder[i] = 0;
}
break;
case 3:
System.out.println("### 매출 현황 ###");
for(int i=0; i<drink.length; i++) {
drink[i].output();
}
break;
default:
System.out.println("잘못된 선택입니다.");
}
}
}
}
사용 예시 !
반응형
'STUDY > K-DIGITAL' 카테고리의 다른 글
[Java] 객체 생성, 클래스에서 다른 클래스 호출해 사용하기 (5) | 2022.08.21 |
---|---|
[Java] Mac Eclipse IDE / Projects are not visible in workspace folder (0) | 2022.08.21 |
[Java] Math.random 사용법, 배수 출력하기 (0) | 2022.08.11 |
[Java] 계절 출력 (Switch-Case break 사용) (0) | 2022.08.10 |
[Java] 자바 가위바위보 만들기 (if 사용) (0) | 2022.08.10 |
Comments