クラスの連携 つづき |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
じゃあ、
クラスとメソッドの関係を
考えてみよう。
まずは
入力と出力の視点で
考えてみよう。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
また視点を
変えてみるんだ。
どんな風に見えるの
かな? |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
|
|
|
 |
|
 |
|
クラスの連携2(連携を考える) |
|
項目 |
内容 |
オブジェクトのタイプ |
|
クラスとメソッドの関係 |
|
クラスの連携のまとめ |
|
|
|
|
|
 |
|
 |
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
今回はこの図を
入力と出力の視点で
見てみるよ。
今度はオブジェクトじゃなく
つながりに注目ね。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
この図は別の角度で見ると
オブジェクトとオブジェクトは
入力(インプット)と
出力(アウトプット)で
つながってると言える。
そして、つなげているのは
メソッドだ。
|
|
|
 |
 |
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
 |
フィールドも
つなげてる
けどね。
接点ね。 |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
なるほど。
メイン工場オブジェクトは
道具工場オブジェクトの
製造ラインメソッドへ
依頼してるからね。
オブジェクトは
メソッドでつながってる
んだね。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
今回の場合は
プロジェクト「内部」の
話とも言えるけど。。。
何を「外部」にするかは
相対的なことってことで! |
 |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
オブジェクトとオブジェクトは
メソッドを通してつながっている。
つまり、メソッド(関数)は
オブジェクト同士の「接点」。
外部への「出入口」、
接続口なんだ。
これをインターフェースと言うよ。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
 |
未来っぽいね! |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
オブジェクトは
インターフェースを通して
外部とのアクセスを制限して
ブラックボックス化したりできる。
これからは、
この視点を意識するようにしよう。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
なるほど。
メソッドはアクセス権と
協力してるんだね。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
そうかあ? |
 |
|
 |
未来っぽい
でしょー。 |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
そして、外部からは
インターフェースの
「接続情報」を知るだけで
オブジェクトの機能を
利用することが出来る。 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
 |
最低限の
情報で
使えるの。 |
|
そうでしょ? |
 |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
「接続情報」は
関数名や引数の数や
並び順のことね! |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
正解。
今日はやけに
冴えてるね。
帰省で
リフレッシュ
したから? |
 |
|
 |
やった!当たり!
あたしはいつも
冴えてますうー。 |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
インターフェースと言う言葉は
様々な場面で使われる。
例えば、
ライブラリは、簡単に言えば
人が作ったクラス、関数を
集めたものだけど、
これをAPI(Application
Program Interface)とも
言うんだよ。
他にも、GUIは、ユーザー
インターフェースだし、
Javaにはインターフェース
と言う機能もある。 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
 |
APIは
視点を変えた
言い方って感じ。
前に
ちょっとやったね。 |
|
恥ずかしー |
 |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
API・・・
あー、これってあたしが
迷子になったとこだ。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
インターフェースは、
英語の「接点」とか
「境界面」とかの意味。
狭義や広義の意味、
場面によっていろいろな
定義があるけど、とりあえず
「接続口、出入口」って
ことを覚えておいて。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
省略して
口(クチ)って
言ったりする
人もいるね。
口と口で
ぶっちゅっちゅー |
 |
|
 |
エロ目やめー |
|
|