【今は怖くなくていい】static(スタティック)をやさしく理解する

C#を学んでいると、

こんなキーワードが出てきます。

static

「え、急に難しそう…」

大丈夫です。

今日は 今の段階で必要な分だけ 理解しましょう。


1. まず確認:これまでやってきた形

みなさんは、こんなクラスを書いてきましたね。

class Player
{
    public string Name;
    public int Hp;

    public void ShowStatus()
    {
        Console.WriteLine(Name);
        Console.WriteLine(Hp);
    }
}

そして、

Player p1 = new Player();
p1.Name = "勇者";
p1.Hp = 100;

p1.ShowStatus();

ここで大事なのは:

  • new している
  • p1 という「実体」を作っている

これを インスタンス と呼びます。


2. staticとは何か?

一言で言うと:

インスタンスを作らなくても使えるもの

です。


例を見てみましょう

Console.WriteLine("こんにちは");

あれ?

Console を new していませんよね?

new Console();  // ← こんなことしていない

それでも使えています。

なぜか?

Console の中の WriteLine は

staticメソッド だからです。


3. インスタンスメソッドとの違い

■ インスタンスメソッド

Player p1 = new Player();
p1.ShowStatus();
  • 実体が必要
  • その人専用の動き

■ staticメソッド

Console.WriteLine("Hello");
  • 実体が不要
  • 全体共通の機能

4. 例えで理解する

■ インスタンスメソッド

「勇者のHPを表示する」

→ その勇者がいないと表示できない


■ staticメソッド

「消費税を計算する」

static int CalcTax(int price)
{
    return price * 10 / 100;
}

→ 誰のものでもない

→ ただの計算機能


5. いま覚えるべきこと

今の段階では、これだけで十分です。

種類使い方実体は必要?
通常メソッドp1.Show()必要
staticメソッドClass名.メソッド()不要

6. なぜ今は深くやらないのか?

この講座は

  • C#基礎
  • C#応用
  • Unity
  • チーム制作

へと進んでいきます  。

staticの本質的理解は

クラスとインスタンスが完全に腹落ちしてから の方が効果的です。

今は、

「newしなくても使えるものがある」

これだけ分かれば十分です。


7. よくある誤解

「全部staticにすればよくないですか?」

ダメです。

なぜなら:

  • 個別の状態(HPなど)が持てなくなる
  • オブジェクト指向の意味がなくなる

staticは便利ですが、

使いどころがあります。


8. 今日のゴール

✔ インスタンスは「実体」

✔ staticは「共通機能」

✔ Consoleはstaticの代表例

これでOKです。


最後に

プログラミングは、

  1. まず動かす
  2. 後から理解が深まる

という順番で成長します。

今は「なんとなく分かる」で十分。

本当に理解が深まるのは

制作演習に入ってからです。

焦らなくて大丈夫です。


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