〖ClassPractice00〗static を体験してみよう(番外編)


前回までで、

クラスを使って

データをひとまとめにする

ことや、

クラスの中にメソッド(処理)を書く

ことを学びました。

今回は番外編として、

new しないで使える「static」

を体験してみます。

参考になる記事


① プロジェクトを追加する

手順

  1. ExtraPractice.sln を開く
  2. ソリューションを右クリック
  3. 「追加」→「新しいプロジェクト」
  4. 「コンソール アプリ」を選択
  5. プロジェクト名をClassPractice00にする
  6. 作成をクリック

② GameUtilityクラスを作る

ClassPractice00 を右クリック

→「追加」→「クラス」

→ GameUtility.cs


③ GameUtility.cs に書く

namespace ClassPractice00
{
    public static class GameUtility
    {
        public static void ShowTitle()
        {
            Console.WriteLine("=== バトル開始 ===");
        }
    }
}

新しく追加された部分

public static class GameUtility

ここがポイントです。

static が付いているので、

このクラスは

new しないで使う

という扱いになります。


④ Program.cs に書く

using ClassPractice00;

GameUtility.ShowTitle();

⑤ F5 で実行

結果:

=== バトル開始 ===

と表示されます。


ここで何が起きている?

これまでの呼び出しはこうでした。

Player p1 = new Player();
p1.ShowStatus();

今回はこうです。

GameUtility.ShowTitle();

違いはこれだけです。

new がない


■ static とは何か(やさしい説明)

今はこれだけで十分です。

  • new しないで使える
  • クラス名から直接呼び出せる
  • 共通の処理に向いている

■ なぜ static にするの?

たとえばタイトル表示は、

「勇者専用」ではなく

「みんな共通」

で使いたい処理です。

そういうとき、

Player に入れるよりも

GameUtility のような

「共通の道具箱」

にしておくと整理しやすいです。


■ 今日のゴール

✔ static は new しないで使える

✔ クラス名からメソッドを呼び出せる

✔ 共通処理を別クラスに分けられる


■ 今は覚えなくていいこと

  • static のメモリ上の話(どこに置かれるか等)
  • static フィールド(データを共有する話)
  • static とインスタンスを混ぜる設計の判断

今回は

「new しないで呼べる」

を体験できればOKです。


まとめ

これまで:

インスタンスを作って(new)使う

今回(番外編):

new しないで使う(static)

ここまで理解できれば、大成功です。

訪問数 15 回, 今日の訪問数 15回