演習課題「生成されたオブジェクトの数を数えられるようにしよう」
右のコードエリアにはメインとなるPracticeクラスと、冒険者のAdventurerクラスが定義されています。
PracticeクラスのMainメソッドでは、魔王への攻撃を行ったあとに冒険者の総人数を出力しています。
しかし、呼び出しているGetCount()メソッドはまだAdventurerクラスには実装されていません。
次の条件でAdventurerクラスにcountフィールドとGetCount()メソッドと実装してください。
また、count変数はすべてのAdventurerオブジェクトで共通の値となるようにしてください。
フィールド
名前: count
型: int型
アクセス制御: クラス内からでしか呼び出せない
メソッド
名前: GetCount
アクセス制御: どこからでも呼び出せる
引数: なし
戻り値: int型 countフィールド
期待する出力値
冒険者は魔王を攻撃した
残りMP115
ウィザードは魔王を攻撃した
残りMP544
クルセイダーは魔王を攻撃した
残りMP45
プリーストは魔王を攻撃した
残りMP475
冒険者の総人数は4人
#08:staticを理解しよう
Mainメソッドについている「static」について学習します。
staticがついた変数やメソッドは、全てのオブジェクトで共通して利用できます。
また、オブジェクトを作らなくてもアクセスできます。
// staticを理解しよう
using System;
public class Lesson07
{
    public static void Main()
    {
        var apple = new Item(120, 15);
        var total = apple.GetTotalPrice();
        Console.WriteLine("合計金額は" + total + "円です");
        var orange = new Item(85, 32);
        Console.WriteLine("合計金額は" + orange.GetTotalPrice() + "円です");
        Console.WriteLine("アイテムは" + Item.GetCount() + "種類です");
    }
}
public class Item
{
    private int price;
    private int quantity;
    private static int count = 0;
    public Item (int price, int quantity)
    {
        this.price = price;
        this.quantity = quantity;
        count += 1;
    }
    public int GetTotalPrice()
    {
        return price * quantity;
    }
    public static int GetCount()
    {
        return count;
    }
}
一週間で身につくC#言語の基本|応用編第2日目~静的メンバ
http://csharp.sevendays-study.com/ex-day2.html
静的メンバー - C# によるプログラミング入門 | ++C++; // 未確認飛行 C
https://ufcpp.net/study/csharp/oo_static.html
static 修飾子 - C# リファレンス | Microsoft Docs
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/static
Console.WriteLine Method (System) | Microsoft Docs
https://docs.microsoft.com/ja-jp/dotnet/api/system.console.writeline?view=netframework-4.8