
今回は
というテーマでお送りします。
今回は、オブジェクト指向の考え方について
お話していきますね。

しっかり、聴いておきます。

【Youtube版】
Youtubeでもお伝えしていますので
是非チェックしてくださいね。
【1】手続き型

私達がJava超入門・Java入門メソッド編で
学んできた時には、このような事を中心に考えてきました。
(演算や制御構造など…)
コンピュータがどのようにデータを持つか。
(変数や引数など…)
部品化は「処理」の分割を考える。
(『メソッド』分割)
このような方法を
といいます。
これは、基礎を学ぶ上で、とても大切なことで
ここまで、確実に知識を吸収して
スキルを上げてきましたね。
そして、次に学ぶのが
です。
更に、ステップアップですね。
次のコーナーで見ていきましょう。
【2】オブジェクト指向

「手続き型」プログラミングでは
コンピュータの処理を考える
データの持ち方を考えるといった
プログラムを組み立てていく方式でした。
それに対して「オブジェクト指向」プログラミングは
「現実の世界のオブジェクト(人・物・概念)」を
プログラムで表現します。
と言えます。
ちなみに「指向」という言葉は
「…を中心として…」という意味です。

私達が、プログラムを開発する場合
システム化したい対象があります。
例えば…
お店屋さんのシステム場合だったら…
現実世界では、お客さんが買いたいものを選ぶと
店員がお金をもらって、商品を渡します。
家計簿のシステムの場合…
現実の世界では、予算や経費を電卓などで計算して
手書きで帳簿に記録していきます。
このように、プログラムを開発することは
その対象となる「現実の世界」があって…
それを システムに置き換えていく事がほとんどです。


Java の 仮想世界 を作っていく感じです…。
そして「現実世界」を『仮想世界』に置き換えていく時に…
オブジェクト指向では、コンピュータの処理や
データの持ち方を中心に(指向して)考えるのではなくて…
現実世界の オブジェクト(人・物・概念)を
中心に(指向して)考えて部品を組み立てていくんです。

【3】こんな例では…

1つの例を見てみましょう。
役所で 住民票 を発行している世界を考えましょう。
まず申請者やってきて、申請書を手にとって
その申請書に記入します。
そして、受付担当に提出…。

受付担当は、内容を確認してから
データ倉庫担当に、住民データの検索を依頼します。
データ倉庫担当は住民データを検索して
受付担当に渡します。

受付担当は、住民データを印刷担当に渡して
印刷を依頼します。
印刷担当は、印刷を実行して
その印刷物を受付担当に渡します。

受付担当者は、申請者に 印刷物を渡します。

こんな現実世界があったとします。
オブジェクト指向では、登場するオブジェクト
(人・物・概念)を中心に考えていくので…
オブジェクトとして…
・受付担当obj(人)
・データ倉庫担当obj(人)
・印刷担当obj(人)
・申請用紙obj(物)
・住民データobj(概念)
・印刷物obj(物)
…などを部品として システム化する事を考えます。
そして、その各オブジェクトの
「属性」と「振舞い(操作)」を考えていきます。



とっても、大切なポイントです…。
【属性】は、そのオブジェクトが持っているデータと言えます。
そして
【振舞い(操作)】は、そのオブジェクトの動作・処理。
と言えるんです。
例えば…今回の例の「申請者」を例に考えると
【属性】
・名前:佐藤三郎
・性別:男性
・生年月日:1986年1月1日
・住所:東京都中央区…
:
:
【振舞い(操作)】
・申請書を手に取る
・申請書に記入する
・申請書を提出する
・印刷物を受け取る
:
:
こんな感じで、組み立てていって…
オブジェクト同士の 関わりを
表現していく事になるのです…。
【4】利点


どんな、利点があるんでしょう…。

現実世界のオブジェクトに焦点を当てて
考えるので…。
【2】 コンピュータを知らない人にも説明しやすい。(確認などしやすい)
【3】 抽出されてたオブジェクト毎に分割しやすい。
…といった事が挙げられるんです。
確実に、望まれるシステムが 構築できそうですね。
【5】3大要素

オブジェクト指向プログラミングは…
ここまで話してきた
現実世界のオブジェクトを中心にした概念の他に…
3つの大切な要素があります。それは…
❷ 継承
❸ ポリモフィズム(多態性)
というものです。
詳細は この先、勉強する時に説明していきますが…
これらの要素により
…など、良い事が多くあるのです。
この事も、オブジェクト指向が 現在のプログラミングの
主流になっている 大きな要因なのです。

その他にも 3大要素 があるんですね。
カプセル化・継承・ポリモフィズム…。
それだけ、良い点も多いという事なのですね。
【まとめ】

● オブジェクト指向の考え方
考えてプログラミングすることを
『手続き型プログラミング』という。
(人・物・概念)を中心に考える事を
『オブジェクト指向プログラミング』
と言う。
システム化する。
・ 各オブジェクトの
「属性」と「振舞い」
を考えて組み立てていく。
❷ コンピュータを知らない人にも
説明しやすい。(確認などしやすい)
❸ 抽出されてたオブジェクト毎に
分割しやすい。
❷ 継承
❸ ポリモフィズム
(多態性)
(これらの要素による利点)
・ 開発の効率が良くなる。
・ 部品の再利用性が上がる。
・ 柔軟性・保守性が上がる。
今回も、ご覧いただき、ありがとうございます。