クラスの連携 |
|
|
|
ぺろぺろ |
でへへ
オブジェクト指向
だからって
物で釣られたん
じゃないよ。
釣られたん
じゃないよ。 |
 |
|
 |
えへへ
オブジェクト指向
だからって
物で釣ったん
じゃないよ。
釣ったん
じゃないよ。 |
|
|
|
 |
|
 |
|
オブジェクト指向って何? |
|
|
|
・クラスとは |
・クラスの概要 |
・クラスの詳細 |
・クラスの連携 |
|
|
|
|
|
|
|
 |
|
 |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
今まで見てきたのは
クラス単体の書き方。
つまり、1つの「物」の設計図
の書き方だ。
「一つのシステム」を
「一つの物」として考えてきた
とも言える。
継承とか使って
複数のクラスを使っても、
インスタンス化できるのは
結局1種類だけだったでしょ。
|
|
|
 |
 |
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
 |
今までは
一つの
オブジェクトを
作るやり方。 |
|
1つの物だけで
考えてたんだ。 |
 |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
なるほど。
時計で言うと
システム全体を
「時計」として捉えた
書き方だったんだね。
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
これまでの見てきた内容(クラス単独) |
 |
物と物(設計図と設計図)は連携してなかった |
|
|
これからは
複数のオブジェクトの
連携で1つの物を
作るのだ。 |
 |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
でも実際は、プログラムは
クラスの連携で動く。
ここからは、
複数のクラスの「書き方」。
つまり、
複数の「物」が連携した設計図
の書き方をやる。
「一つのシステム」を
「複数の物」で構成して考えるんだ。
クラス同士(オブジェクト同士)を
連携させてね。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
そっか!
時計で言うと
部品との連携を
考えて作るんだね。 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
 |
複数の
オブジェクトを
設計するんだ。 |
|
|
|
これから見る内容(クラス連携) |
 |
物と物(設計図と設計図)の連携を考える |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
クラスを分けて作ることで
様々な利点がある。
例えば、
クラスごとに部品として作って
改変や交換しやすくしたり、
クラスごとに設計・開発の
担当者を分けて作業を分担
したりね。
ここではそういう作り方を
学習するんだ。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
そっか。
部品ごとに作る人を
分ければみんな同時に
作業ができるね。
みんなで分担して
協力できるんだ。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
この利点は
さっきも言った
けどねー。 |
 |
|
 |
クラス設計の
とこだっけ? |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
今回は、連携の基本を
「工場」に例えた例で
見ていくよ。
これは次のセッションにも
関係するから、しっかり
見ておいてね。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
今度はクラスで
「工場」を作るんだ。
いろいろな視点で
見た方が理解が
深まるね。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
ぺろぺろ |
でへへ
おいちいー
これ、
うれし涙
だからー。 |
 |
|
 |
おやつ食べた
ばかりなのに。
食べ過ぎー |
|
|
|
 |
|
ちなみに
「クラスの連携」は
プログラミング用語
とかじゃないよ。
説明になんかいい
言葉ないかなって。
|
 |
|
 |
説明用なんだね。
はい、
覚えておきます。 |
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
このパートでは、
クラスの「連携」の説明に
重点を置くからね。
連携に関係ある項目は
主に「メソッド」。
その他の事項はいろいろ
図から省略するから、
書いてあるって想像してね。 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
 |
余計なのあると
見にくくなるから
省略ー。 |
|
メソッドは
必ず呼出元に
戻るんだね。
関数と一緒だね。 |
 |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
メソッドに注目
するんだね。
はいっ。
柔軟に見るね。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
 |
|
 |
|
このパートでの図の注意点 |
|
・ |
メソッドの呼び出しラインは、
戻りの矢印を省略している場合がある。
(実際は、メソッドは必ず呼出元に戻る。) |
・ |
アクセス権やコンストラクタなどの表示を省略する。
(フィールドのアクセス権は「プライベート」、
メソッドは「パブリック」になってると考えて下さい。) |
・ |
アクセス権や継承は基本的に考慮しない。 |
|
|
|
|
 |
|
 |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
それから、
プログラムのことも
いろいろ絡めて話をする
からね。
今まで勉強した知識で
イメージするようにしてくれ。
できる限りでいいからね。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
プログラムの話も
出てくるんだ。
はいっ。
イメージします。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
うふふ
もう一本
食べゆー |
 |
|
 |
甘やかし
すぎ?
作りすぎた
かな・・・ |
|
|
 |
食べすぎ!
今日は
もうダメ! |
 |
|
 |
ふええーん
おにー
あくまー
ことぶきー |
|
|