요구사항

  • 장바구니 상품: 양파, 사과, 생선, 두부
  • 기능1: 상품추가(addProduct)
  • 기능2: 장바구니 목록 출력(printCart)
  • 기능3: 상품 삭제(removeProduct)
  • 기능4: 총 가격 계산(calculateTotalPrice)

Step 1. 기본 틀 만들기 

// Product.java
// 각 상품은 이름, 가격 속성을 가짐
public class Product {
    String name;
    int price;

    Product(String name, int price){
        this.name = name;
        this.price = price;
    }
}
// Cart.java
// Cart 객체를 생성하면 ArrayList형 장바구니 하나를 만듦

import java.util.ArrayList;

public class Cart {
    ArrayList<Product> productCart;

    Cart(){
        productCart = new ArrayList<>();
    }
}
public class Main {
    public static void main(String[] args) {
        Cart cart = new Cart(); // 장바구니 생성
    }
}

 


Step 2. 상품추가(addProduct) 기능 구현

// Cart.java
void addProduct(String name, int price){
     productCart.add(new Product(name, price));
}
// Main.java
cart.addProduct("양파", 1000);
cart.addProduct("사과", 1000);
cart.addProduct("생선", 1000);
cart.addProduct("두부", 1000);

 


Step 3. 장바구니 목록 출력(printCart) 기능 구현

// Product.java
String getName(){
    return this.name;
}
// Cart.java
void printCart(){
     for(int i=0; i< productCart.size(); i++){
        System.out.println(productCart.get(i).getName());
     }
}
// Main.java
cart.printCart();

 


Step 4. 상품 삭제(removeProduct) 기능 구현

2-1. 반복문 이용

// Cart.java
void removeProduct(String name){
    for(int i=0; i< productCart.size(); i++){
        if(productCart.get(i).getName().equals(name)){
            productCart.remove(i);
        }
}
// Main.java
cart.removeProduct("양파");
cart.printCart();

 

2-2. 람다 이용

// Cart.java
void removeProduct(String name){
    productCart.removeIf(product -> product.getName().equals(name));
}

 

클래스 내부 최상단에 기본 틀로 작성했던 ArrayList<Product> productCart; 코드를 통해 람다식이 Product 객체로 전달될 수 있다.

 


Step 5. 총 가격 계산(calculateTotalPrice) 기능 구현

// Product.java
int getPrice(){
    return this.price;
}
// Cart.java
void calculateTotalPrice(){
    int sum=0;
    for(int i=0; i< productCart.size(); i++){
        sum += productCart.get(i).getPrice();
    }
    System.out.println("총 금액은 " + sum);
}
// Main.java
cart.calculateTotalPrice();