クラスとは |
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
さて、いろいろな
オブジェクトの例を
見てきた訳だけど。
ここまでOK? |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
今はそれでOK。 |
 |
|
 |
何となくの
ところも
あるけど。 |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
でも、考えてみてくれ。
「物」は、いきなりこの世界に
存在する訳じゃないだろ。
さっき見た「時計」だって
ぱっと湧いて出てくるわけじゃない。
「設計」して「作る」ことをしなきゃ
「物」は生まれないんだ。 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
 |
当たり前の
ことだけどー |
|
考えてみれば
そうだね!
ぱっと出たら
魔法だ! |
 |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
そっか!
設計して実際に
作らないと、物は
使えないんだね! |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
 |
|
じゃじゃーん
お待たせ
しました!
クラスの
登場です! |
 |
|
 |
わー
クラスだー! |
|
|
|
|
 |
|
|
|
|
 |
 |
 |
|
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
その「物」の「設計図」に
あたるのがクラスだ。
クラスは
「オブジェクトの設計図」
なんだよ。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
 |
|
|
|
|
 |
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
クラスは
設計図なんだ!
なんかピンと
きたかも! |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
そして、オブジェクトは、
捉え方によって様々な設計が出来る。
例えば、さっきの「時計」。
出来合いの部品を集めて組み立てる
だけなら、1つの設計図で十分かも
しれない。
そんな時は、
「時計」を1つの「物(システム)」として
捉えて、1つのクラスで設計すればいい。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
設計の
イメージね。
そのまま
見てね。 |
 |
|
 |
うーん・・・
そうなんだ。 |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
自前で時計の部品も作って組み立てるなら、
部品ごとに細かく設計図を分けた方が
いいかもしれない。
そんな時は、「時計」を複数の「物(部品)」の
集合体の「物(システム)」として捉えて、
複数のクラスで設計すればいい。
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
いろいろな視点で
考えるのが重要。
深く考えないで
いいよ。
これからゆっくり
見ていくからね。 |
 |
|
 |
物の捉え方に
よっていろいろな
設計ができるんだ。
うーん、
分かったような
ないような。
難しい。。。 |
|
|
|
|
|
|
 |
|
 |
|
クラスは物を作る単位
「時計」をいろいろな単位に分けて考える
単位 |
クラス |
種類 |
時計 |
目的 |
時間を計る |
部品 |
・時計組立(全体設計)
・風防
・ムーブメント
・フレーム |
機能 |
・時間表示
・アラーム
・ライト |
・・・ |
・・・ |
同じ物でもいろいろな捉え方、分け方ができる
作る物の目的や種類、機能など
必要に応じてクラスを分けて設計する |
|
|
 |
|
 |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
つまり、
クラスは見方を変えると
「物」を作る単位とも言える。
物の「種類」や「目的」、
「部品」や「機能」などの単位で
クラスを分けて設計するんだ。
そうすることで、
オブジェクトごとに役割を
分担したり、他に影響を
与えずに交換や追加・変更を
しやすくなる。
部品を取り替える感じにね。 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
 |
今はなんとなくでー
これからずっと
やってくことだから。 |
|
はいっ。
なんとなくー |
 |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
クラスは
目的や機能で
分けて作るって
考えればいいんだね。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
設計には、利点と欠点、
長所と短所を伴う。
こんな風に作る物に応じて
いろいろ考えてクラスを設計
していく必要があるんだよ。
これがクラス設計だ。
そして、これはプログラムの
場合も同じ。
これからは、プログラムを
「物」として捉えて、クラスを
使って設計していく。
これからのプログラム設計の
中心になるんだ。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
プログラムを「物」に
例えて作るんだ!
今までと全然違うー
オブジェクト指向って
面白いね! |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
てな感じー |
 |
|
 |
わくわくするー |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
でも、クラスって不思議ー。
この世界はきっと
神様が作った設計図から
生まれたんだね。
水も、風も、木も、私達も・・・ |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
|
うっとり |
すてき・・・ |
 |
|
 |
付き合い
きれんわ。 |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
ねえねえ!
クラスってことは
クラスが集まって
学校ができて!
この世界はみんな、
学校の友達って
ことだね! |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
|
きゃー |
クラスって
素敵だね! |
 |
|
 |
わけ分からん!!
次行くー! |
|
|