p.153 クラスとは何か
・クラスは「データと処理の設計図」であり、C#ではプログラムそのものもクラスとして記述する
・よって、ここまで作成したプログラムのすべてが「class クラス名{処理内容}」という形式になっている
・クラスは呼び出されて設計図として用いられ、動作用の実体がメモリ上に生成される
・この動作用の実体をオブジェクト(インスタンス)という
・よって、ここまで作成したプログラムも、実行指示によって動作用のオブジェクトが生成されて動作した
・プログラマは、実行用のクラスに加えて、それが利用するクラスを定義して用いることができる
・その場合、実行用のクラスの中で、利用するクラスのオブジェクトを生成して用いる
p.154 簡単なクラスを定義しよう
・クラスにはデータや実行用のメソッドなどを含むことができる
・ここまで作成したプログラムにおいては、1クラスの中にmainという1つのメソッドが含まれている
・クラスに含まれるデータや実行用のメソッドなどをメンバという
・今まで定義してきた変数はすべてmainメソッドの中だったが、mainメソッドの外に定義することで、変数をクラスのメンバ(データメンバ)に
することができる
・これをクラス変数といい、メソッドとは独立して扱うことができる
・定義書式: アクセス修飾子 データ型 変数名;
・アクセス修飾子はメンバをクラスの外部から利用可能にするかどうか等を指定するもので、publicにすると、外部から利用可能
・mainメソッドがpublic指定なのは、C#システムから呼び出し可能にするため
・外部から利用可能にする必要がなければ、privateとすることで、クラス内でのみ利用可能にでき、安全性が高くなる
・クラスの定義書式: class クラス名 { メンバの定義; … }
・クラスのメンバはクラス変数のみでも良いので、複数の型が異なる変数をまとめて扱う場合にも有効
※ C言語における構造体をより強力に実装できる
・クラス変数のみのクラスの例
class Monster { //モンスタークラス(名前とHPとMPをデータメンバとして持つ)
public string name;
public int hp;
public int mp;
}
p.155(クラスからのオブジェクトの生成)
・プログラム内で定義したクラスを用いるには、基本的にオブジェクトを生成する必要がある ・クラスからのオブジェクトの生成にはnew演算子を用いる ・生成したオブジェクトはクラスを型とする変数で扱い、new演算子の戻り値を代入することで利用可能になる ・この戻り値はオブジェクトへの参照(p.40)なので、クラスを型とする変数は参照型になる ・宣言書式: クラス名 参照変数; ・生成書式: 参照変数 = new クラス名(); //カッコ内の利用方法は後述 ・この宣言と生成は同時に行うことができる ・宣言と生成の書式: クラス名 参照変数 = new クラス名(); ・例: Monster Rimuru = new Monster(); //MonsterクラスのオブジェクトRimuruの生成
提出:p.152 練習問題 ex0601.cs