007 クラス (クラスの利用)017 解答例

Productクラスの宣言

/**
 * Product クラスは商品の情報を保持し、表示するメソッドを提供します。
 */
public class Product {
    // 商品名
    private String name;
    // 商品価格
    private double price;

    /**
     * Product クラスのコンストラクタ
     *
     * @param name  商品名
     * @param price 商品価格
     */
    public Product(String name, double price) {
        this.name = name;
        this.price = price;
    }

    /**
     * 商品名を取得するメソッド
     *
     * @return 商品名
     */
    public String getName() {
        return name;
    }

    /**
     * 商品価格を取得するメソッド
     *
     * @return 商品価格
     */
    public double getPrice() {
        return price;
    }

    /**
     * 商品の情報を表示するメソッド
     */
    public void displayProductInfo() {
        System.out.println("Product: " + name);
        System.out.println("Price: $" + price);
        System.out.println("------------");
    }
}

Shopクラスの宣言

import java.util.ArrayList;
import java.util.List;

/**
 * Shop クラスは商品の管理を行います。
 */
public class Shop {
    // 商品リスト
    private List<Product> products;

    /**
     * Shop クラスのコンストラクタ
     */
    public Shop() {
        // 商品リストを初期化
        this.products = new ArrayList<>();
    }

    /**
     * 商品をショップに追加するメソッド
     *
     * @param product 追加する商品
     */
    public void addProduct(Product product) {
        // 商品リストに商品を追加
        products.add(product);
        // 追加された商品を表示
        System.out.println(product.getName() + " added to the shop.");
    }

    /**
     * 商品をショップから削除するメソッド
     *
     * @param product 削除する商品
     */
    public void removeProduct(Product product) {
        // 商品が削除できた場合
        if (products.remove(product)) {
            System.out.println(product.getName() + " removed from the shop.");
        } else {
            // 商品が見つからない場合
            System.out.println("Product not found in the shop.");
        }
    }

    /**
     * ショップ内のすべての商品を表示するメソッド
     */
    public void displayAllProducts() {
        // 商品がない場合
        if (products.isEmpty()) {
            System.out.println("No products in the shop.");
        } else {
            // すべての商品の情報を表示
            System.out.println("Products in the shop:");
            for (Product product : products) {
                product.displayProductInfo();
            }
        }
    }
}

利用例

public class Main {
    public static void main(String[] args) {
        // Shop クラスのインスタンスを作成
        Shop myShop = new Shop();

        // Product クラスのインスタンスを作成
        Product laptop = new Product("Laptop", 999.99);
        Product smartphone = new Product("Smartphone", 599.99);

        // 商品を追加
        myShop.addProduct(laptop);
        myShop.addProduct(smartphone);

        // 商品一覧表示
        myShop.displayAllProducts();

        // 商品を削除
        myShop.removeProduct(laptop);

        // 更新された商品一覧表示
        myShop.displayAllProducts();
    }
}

この例では、Shop クラスが Product クラスのオブジェクトをリストで管理し、商品の追加、削除、一覧表示を行っています。

「007 クラス」問題集リスト