https://youtu.be/7ZXYhvOO8qg
1. 문제 설명
온라인 상점의 주문관리 시스템을 만들려고 한다.
먼저, 상품 주문 정보를 담을 수 있는 ProductOrder 클래스를 만들어보자.
상품 주문을 관리하기 위해 주문 class를 생성하여 일정한 양식의 데이터를 관리하는 문제
클래스, 배열, 향상된for문을 학습할 수 있는 문제
2. 요구 사항
- ProductOrder클래스는 다음과 같은 멤버 변수를 포함해야 한다.
- 상품명 ( productName )
- 가격 ( price )
- 주문 수량 ( quantity ) - ProductOrderMain 클래스 안에 main()메서드를 포함하여, 여러 상품의 주문 정보를 배열로 관리하고, 그 정보들을 출력하고, 최종 결제 금액을 계산하여 출력하자.
- 출력 예시와 같도록 출력하면 된다.
public class ProductOrder {
String productName;
int price;
int quantity;
}
public class ProductOrderMain {
public static void main(String[] args) {
// 여러 상품의 주문 정보를 담는 배열 생성
// 상품 주문 정보를 `ProductOrder` 타입의 변수로 받아 저장
// 상품 주문 정보와 최종 금액 출력
}
}
3. 문제 해결
public class ProductOrderMain {
public static void main(String[] args) {
ProductOrder[] orders = new ProductOrder[3];
ProductOrder order1 = new ProductOrder();
order1.productName = "두부";
order1.price = 3000;
order1.quantity = 2;
orders[0] = order1;
ProductOrder order2 = new ProductOrder();
order2.productName = "김치";
order2.price = 8000;
order2.quantity = 1;
orders[1] = order2;
ProductOrder order3 = new ProductOrder();
order3.productName = "콜라";
order3.price = 1000;
order3.quantity = 3;
orders[2] = order3;
int totalAmount = 0;
for(ProductOrder o : orders){
System.out.println("상품명: " + o.productName + ", 가격: " + o.price + ", 수량: " + o.quantity);
totalAmount += o.price * o.quantity;
}
System.out.println("총 결제 금액:" + totalAmount);
}
}
4. 스크립트
클래스 생성
먼서 객체를 사용하기 위해서는 객체를 생성하고 변수에 생성한 객체에 접근할수 있는 참조값을 담아줘야한다.
변수 선언
- int, String처럼 클래스의 타입을 사용자 정의타입이라 하겠음.
- 클래스는 사용자정의 타입과 변수를 선언하여 사용한다 클래스에서 선언되는 변수는 객체를 받을 수 있다.
객체 생성
- new를 사용하여 인스턴스를 생성하면 메모리에 객체를 생성한다.
- 이때 클래스가 가지고 있는 멤버변수를 사용하는데 필요한 메모리도 함께 확보한다.
참조값 보관
- 객체를 생성하고 변수에 담게되는 객체에 접근할 수 있는 주소인 참조값이 들어간다.
객체 사용
- 객체를 접근하여 사용할때는 .을 사용하면 된다.
2. 배열과 향상된 for문
배열선언과 생성
- 사용자정의 타입도 배열을 생성할때 포함할 수 있다.
- 선언과 생성을 동시에하여 최적화
for문 최적화
- 인덱스길이만큼 하나씩 증가하면서 반복하는 for문
- 배열이 사용된 뒤 반복되는 부분을 반복문으로 최적화.
- 향상된 for문을 사용하여 반복문을 최적화.
- orders 배열의 모든 요소를 o라는 변수로 순차적으로 접근
'유튜브 스크립트 > JAVA' 카테고리의 다른 글
[JAVA | 영상스크립트 | 백문이 불여일타!!] 생성자 (0) | 2024.08.28 |
---|---|
[JAVA | 영상스크립트 | 백문이 불여일타!!] 참조형 (0) | 2024.08.26 |
[JAVA | 영상스크립트 | 백문이 불여일타!!] 메소드(입출력프로그램) (0) | 2024.08.26 |
[JAVA | 영상스크립트 | 백문이 불여일타!!] 메서드(리팩토링) (0) | 2024.08.26 |