C#を勉強していると、「クラス」「メソッド」「インスタンス」など色んな用語が出てきます。
今回は、オブジェクト指向で必須の「クラス」について事例も含めて紹介します。
クラスとは
C#だけではなく、様々なプログラミング言語において、オブジェクト指向という考え方があります。オブジェクト指向は、クラスというまとまりでプログラムを分割して整理する考え方です。
前回はメソッドという仕組みで処理を分割しましたが、大規模なプログラムを作るときには、もう少し大きな単位でまとめる必要があるため、クラスを使います。
クラスの分割方法は、それぞれ関連するもの同士をまとめて1つのクラスとします。例えば、花というクラスがあれば、そこにひまわりやチューリップが入ります。
ゲームで考えると、プレイヤーというクラスの中にプレイヤーの名前や体力、攻撃をまとめます。同様に敵というクラスを作って、敵の名前や体力、攻撃をまとめます。
つまり、関連のある変数(名前や体力)とメソッド(攻撃)をまとめたものを1つのクラスとして作成します。
すぐに理解することは難しいかもしれないですが、プログラムを見ながら理解を深めていきましょう。
クラスの作り方
今回はVisual Studioという開発ツールを使い、クラスを追加する方法を紹介します。
Visual Studioは個人でも無料でダウンロードできるので、もし気になったらチェックしてみてください(^^)
それでは人狼ゲームを想定して、村人と人狼のクラスを作ってみたいと思います。
Visual Studioでクラスを作成する
早速Visual Studioを開いて、クラスの設定をしてみましょう。
①Visual Studioを立ち上げ、「新しいプロジェクトの作成」をクリックします。
「コンソールアプリ(.NET Core)」を選択しプロジェクト名とファイルの保管場所を指定後「作成」をクリックします。
(*今回の例では"JinroGame"という名前をつけました。)
②画面右側のソリューションエクスプローラーの中のプロジェクト名を右クリックし、追加→新しい項目の追加と順番に選択します。
③Visual C#アイテムのクラスを選択して名前を付けて追加ボタンを押します。
④ソリューションエクスプローラーに"Murabit.cs"という拡張子のファイルが作成されました(^^)
作成されたMurabitoのドキュメントウィンドウ(緑枠)にプログラムを書いてクラスを作成していきます。
クラスの中身を作成する
準備ができたので、具体的にクラスの中身を考えていきます。
クラスを作る手順を参考に人狼ゲームのクラスを考えてみました。
2.書き出したモノそれぞれに属する値を列挙する
3.書き出したモノすれずれに対する動作や処理を列挙する
今回は、村人と人狼でクラスを作りました。
プログラム例
村人クラスと村人クラスを呼び出すProgramクラスの設定をします。
<<Murabito.cs>>
まずは、村人クラスを作成しましょう。
Murabit.csを開いてClass Murabitoの中に変数の指定、メソッド(DiscussとVote)の作成をします。
今回は、引数も戻り値もないシンプルなパターンです。
各メソッドの中に、this.変数名という記載があります。thisは自分自身のインスタンスを表すキーワードになります。(インスタンスについては別記事で紹介します)
続いて、村人クラスを呼び出すプログラムを作るのですが、そこではインスタンスを準備する必要があります。少し長くなってしまうので、次回の記事でインスタンスの紹介とプログラムの続きを説明させていただきます!
ひとこと
今回はクラスについての役割と、Visual Studioでも作成方法を紹介させていただきました。まずは、グループにまとめてクラスを作って、それをメインから呼び出すのだなーとざっくり理解してもらえばよいかと思います。次回以降は、インスタンスを使って具体的にプログラムを呼び出す方法を紹介させていただきます(^^)
今回の説明は「確かな力が身につくC# 「超」入門」を参考にさせていただきましたが、「もっと前から読んでおきたかった!」と痛感しています、、もし、C#について学び始めたという方は是非参考にしてみてください!(2020年7月に出版された新書です^^)