가비지 컬렉터 GC
public class ProductOrderMain2 {
public static void main(String[] args) {
// 여러 상품의 주문 정보를 담는 배열 생성
// createOrder()를 여러번 사용해서 상품 주문 정보들을 생성하고 배열에 저장
// printOrders()를 사용해서 상품 주문 정보 출력
// getTotalAmount()를 사용해서 총 결제 금액 계산
// 총 결제 금액 출력
} }
public class RefactoringA {
public static void main(String[] args) {
ProductOrder[] orders = new ProductOrder[3];
orders[0] = createOrder("두부" , 3000, 2);
orders[1] = createOrder("김치" , 8000, 1);
orders[2]= createOrder("콜라" , 1000, 3);
printOrders(orders);
int totalAmount = getTotalAmount(orders);
System.out.println("총 결제 금액:" + totalAmount);
}
static ProductOrder createOrder(String productName, int price, int quantity) {
ProductOrder order = new ProductOrder();
order.productName = productName;
order.price = price;
order.quantity = quantity;
return order;
}
static void printOrders(ProductOrder[] orders) {
for (ProductOrder o : orders) {
System.out.println("상품명: " + o.productName + ", 가격: " + o.price + ", 수량: " + o.quantity);
}
}
static int getTotalAmount(ProductOrder[] orders){
int totalAmount = 0;
for (ProductOrder o : orders) {
totalAmount += o.price* o.quantity;
}
return totalAmount;
}
}
스크립트
참조형 변수를 이해할 때 중요한 점은 참조값을 통해 객체나 배열의 원본 데이터를 변경할 수 있다는 것이다. 이를 통해 메소드에 객체나 배열을 전달할 때 원본 데이터를 효과적으로 수정하고 조작할 수 있다.
배열은 참조형이다.
즉, 배열 변수는 배열 데이터를 직접 저장하는 것이 아니라 배열 데이터가 저장된 메모리 주소를 참조한다.
배열을 매개변수로 전달할 때 배열의 복사본이 아닌 원래 배열의 참조가 전달된다는 뜻이다.
따라서 메소드 내에서 배열의 내용을 변경하면 원래 배열에도 영향을 미친다.
배열의 크기는 배열이 생성될 때 결정되며, 한 번 생성된 배열의 크기는 변경할 수 없다.
배열을 매개변수로 전달할 때 배열의 크기를 함께 전달하거나, 배열의 크기를 직접 계산할 수 있다.
스크립트
배열의 크기는 한번 정해지면 변경할 수 없기 때문에 입력을 받아 동적할당을 해준다.
배열의 개수를 입력받아서 주문을 저장할수 있는 공간을 만들어준다.
null인 배열에 접근하면 NullPointerException이 발생할 수 있다.
'언어 기초 > JAVA' 카테고리의 다른 글
접근제어자, 캡슐화 [JAVA | 학습을 위한 자료 | 김영한 자바 기본] (0) | 2024.06.25 |
---|---|
생성자 [JAVA | 학습을 위한 자료| 김영한 자바 기본] (0) | 2024.06.25 |
클래스와 배열 [JAVA | 학습을 위한 자료 | 김영한 자바 기본] (0) | 2024.06.05 |
메서드 [JAVA | 학습을 위한 자료| 김영한 자바 입문] (0) | 2024.06.05 |
[자바의정석 | Chapter 08 예외처리] try - catch (0) | 2024.03.25 |