演習課題「生成されたオブジェクトの数を数えられるようにしよう」
右のコードエリアにはメインとなる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