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 クラスのオブジェクトをリストで管理し、商品の追加、削除、一覧表示を行っています。