クラスについて深堀するコーナー のバックアップ(No.3)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- クラスについて深堀するコーナー へ行く。
RPGで覚えるC#の基本構文とオブジェクト指向
contents
はじめに
C#の基本的な構文についてポケモンで例えてわかりやすく説明する試みです。あくまで例えであって本家ポケモンの実装を説明するものではありません。
正確ではない情報が含まれます。ある程度プログラミングのわかる人や読解力のある人は公式ドキュメントの参照をお勧めします。
https://learn.microsoft.com/ja-jp/dotnet/csharp/programming-guide/
br
クラス
クラスはC#の一番基本的なものです。クラスは「データ」と「アクション」をまとめたデータ構造です。
ポケモンのクラスを作るとすれば、クラスの中にはタイプやレベルなどの「データ」と、技を使う、技を覚えるなどの「アクション」を書けば良いわけです。
br
試しにポケモンクラスを作ってみます。
br
クラスを作るには
geshi
のように書きます。
geshi
{}のなかは見やすいように改行してあります。何行改行しても処理に変化はありません。Pokemon のあとの{の位置にも決まりはありません。class クラス名 {の順番で書かれていればどんな形でもクラスと認識されます。
{}のなかにポケモンに必要なものを書いていきます。
br
変数、コメント
まずはポケモンに共通するデータを考えます。
ポケモンの種類で見れば、タイプ、つかえるわざ
個々のポケモンで見ればレベルなどがありそうです。
br
データはクラスの中に「変数」として書きます。変数はデータを保存しておく入れ物みたいなものです。「数」とありますが、中身が数とは限りません。
C#で新しい変数を定義するときは、
#geshi(csharp, number){{
型 変数名}}
のようにして書きます。型とは、例えばその変数の中に入るのが文字なのか?数字なのか?ということをあらかじめ決めておくためのものです。
C#では型を決めておかないと変数を定義できません。
geshi
ポケモンにレベルを作ってみました。
これを使ってプログラムにメモを残すことができます。
intは整数型なので、変数「level」には整数の値しか入らなくなります。小数を使いたいときはfloatにします
intのまえに半角スペースが4つありますが、見やすいように入れているだけです。何個入れても処理に変化はありません。
処理が終わったら、どこまでが処理かわかるように;で区切ります。これで次の処理と分けることができます。
ポケモンによってレベルは違うので、まだlevelのなかには何も入れていません。
fold
コラム:セミコロン;のルール
いやちょっと待てclass Pokemon {}は処理じゃないのかと。
C#ではひとつひとつの処理をステートメントと呼び、ステートメントは、セミコロンで終わるか、1 つのブロック{}で構成されます。
{}のあとには;は要らないことが多いですが、例外もあります。
(かなり語弊があるので正確な情報は↓で確認してください。)
https://learn.microsoft.com/ja-jp/dotnet/csharp/programming-guide/statements-expressions-operators/statements
よくわからなければ、とりあえず;をつけておけば大丈夫です。;;;;;;;と;をたくさん書いてもエラーにはなりません。
br
タイプも書き入れます。
geshi
stringは文字列型です。文字や文章が入ります。
br
配列
ここで先に技のクラスを作ってしまいます。
geshi
Pokemonクラスの下に新しくSkillクラスが作られました。
作った技をポケモンが持てるようにPokemonクラスを改良します。
geshi
自分の作ったクラスもこのように型として使うことができます。
ところで、ポケモンは複数の技を持っています。
技ごとに変数を作っても良いですが、同じ型の変数がいくつも欲しいときは配列が便利です。
配列は
geshi
のように書きます。
geshi
このようにすると、配列変数skillにはSkill型のものをskill1, skill2 ...のように並べて入れることができるようになります。