クラスを定義する
クラスを設計していく上でのコツは「もの」について着目してみるということです。
たとえば、、、
猫、猫にしましょう。プログラム上で猫を作るとします。
なので、今回着目すべきは猫ですね。
では、着目といわれても、どこを見ればいいのでしょうか?
大きく分けて2つ、状態と機能です。
例に挙げるとしたら、
機能は走る、食べる、鳴く。
状態は体重や大きさ(身長?)がある。
などでしょうか。
いや、うちの猫は泳げる!
いやいや、うちの猫は飛べるから!
など、いろいろあると思いますが、それはまだとどめておいてください。
今は全世界に共通する猫の特徴をクラスに盛り込むだけです。
それもクラスに「もの」を落とし込む一つのコツです。
じゃぁ、うちの猫はどうするんだ?と憤慨する方もいるかもしれませんが、安心してください。
次回になると思いますが、オーバーライド(継承)でお話しますので。
では、以上の情報からクラスを作成していきましょう。
ちなみに、多少用語が出てきます。今回の記事でも補足していきながら進めていこうと思いますが、一応こちらから確認してください。
クラスに必要なのが、フィールド(クラスの変数)やメソッド(機能)などですね。
一つ一つステップを踏んでいきましょう。
・身長や体重は小数点まで扱えたほうがよい。
・「鳴け」と指令されたら戻り値、文字型で返ってきたほうがよい
・走ると体重が減ったほうがよい
・食べると体重が増え身長も伸びる。
ということは、
・身長や、体重はdouble型
・鳴くメソッドは戻り値でstring型で返す
・走ると体重のフィールドに一定の体重を足すようにする
・食べると、体重・身長に一定の数値を足せばよい。
ということがわかりますね。
では、以上をまとめて、コードに起こしていきます。
class Cat { //猫の体重を表すフィールド public double weight; //猫の身長を表すフィールド public double height; //猫の鳴き声を返すメソッド public string mew() { return("にゃ~"); } //走るメソッド public void run() { //走ると100グラム体重が減る weight -= 0.1; } //食べるメソッド public void eat() { //食べると体重が100グラム増える weight += 0.1; } }
ドンっ(壁ドンじゃない)
こうなりますね。
ちょっと補足解説をしましょうか。
クラスを作る時は、class クラスの名前 と書きます。
あとは上のように書いてしまえば、クラスの完成です。
あとはこれからオブジェクトを作成します。
Cat Tama = new Cat();
猫というひな形から、Tamaちゃんが誕生です(祝)
これで、Catクラスを扱えるようになりました。
でも、まだクラスは奥深いんです。
続き(前記事)クラスメンバを隠ぺい、公開する。ボリュームあります。
とりあえずここまでできたら一休みしましょう。
ではでは~