〖ClassPractice00〗static を体験してみよう(番外編)
前回までで、
クラスを使って
データをひとまとめにする
ことや、
クラスの中にメソッド(処理)を書く
ことを学びました。
今回は番外編として、
new しないで使える「static」
を体験してみます。
目次
参考になる記事
① プロジェクトを追加する
手順
- ExtraPractice.sln を開く
- ソリューションを右クリック
- 「追加」→「新しいプロジェクト」
- 「コンソール アプリ」を選択
- プロジェクト名をClassPractice00にする
- 作成をクリック
② 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回




ディスカッション
コメント一覧
まだ、コメントがありません