【C#】クラスのサンプル(自動販売機)

以下のような自動販売機用のクラスを定義します

class VendingMachine
{
    // 自動販売機に入っている商品のリストを保存する変数を定義します
    public List<Product> Products { get; set; }
    public int Money { get; set; }

    // 自動販売機のコンストラクタを定義します
    public VendingMachine()
    {
        // 初期状態では商品リストが空であることを表すために、
        // 空のリストを生成して Products プロパティにセットします
        Products = new List<Product>();
    }

    // 自動販売機に商品をセットするためのメソッドを定義します
    public void SetProduct(Product product)
    {
        Products.Add(product);
    }

    // 自動販売機から商品を購入するためのメソッドを定義します
    public void Buy(Product product)
    {
        if (product.Stock == 0)
        {
            Console.WriteLine("在庫がありません");
            return;
        }

        if (Money < product.Price)
        {
            Console.WriteLine("お金が足りません");
            return;
        }

        product.Stock--;
        Money -= product.Price;
        Console.WriteLine($"{product.Name}を購入しました");
    }
}

以下のように、自動販売機用のクラスを使用して、自動販売機を作成します

VendingMachine vm = new VendingMachine();

以下のように、自動販売機に商品をセットすることができます

vm.SetProduct(new Product("コーラ", 120, 10));
vm.SetProduct(new Product("お茶", 100, 5));
vm.SetProduct(new Product("水", 80, 0));

以下のように、自動販売機から商品を購入することができます

vm.Buy(coke);

C#

Posted by hidepon