んにちは!

 

 

超文系プログラマ/SE@SEKIです。

 

 

 

 

今回は、前回に引き続き

「オブジェクト指向」

についてお話しします。

 

 

前回の続きになりますので

まだの方はこちらからどうぞ。

↓↓

あなたには "神" になってもらいます。

 

 

 

「オブジェクト指向」は

誰からも教えてもらえないと

かなり難しく感じてしまう概念です。

 

独学で学習していると

必ずつまづいてしまいます。

 

 

 

「オブジェクト指向」についての

イメージを頭に植えつけておけば

Ruby・Java・C#・Pythonなどの言語を

学習するときにかなり理解しやすくなります。

 

また、オブジェクト指向の概念を

一度理解してしまえば、

他のオブジェクト指向言語にも

応用が利きます。

 

コードの書き方が多少違うだけで

概念は同じなので習得するまでの時間が

はるかに短縮されます。

 

 

 

この記事を最後まで読めば

前回の記事からさらに

 

・オブジェクト指向の考え方が理解できる

・オブジェクト指向言語の学習がしやすくなる

・コードを書くときに悩まなくなる

 

ようになります。

 

 

 

しかし、

前回の記事も今回の記事も読まないと

 

・オブジェクト指向の理解につまづく

・概念が分からずに学習がストップする

・「挫折」へとつながってしまう

 

こんな結末を迎えてしまいます。

 

 

 

 

 

「作業の指示出し」

 

今回はこれをキーワードとして

あなたには抑えて欲しいと思います。

 

 

 

設計図であるクラスから作り出したモノを

「オブジェクト」と呼んでいました。

 

 

 

プログラム上では、

「オブジェクト」が別の「オブジェクト」に

指示出しを行ない、やりとりをします。

 

 

 

 

※なぜ「オブジェクト」同士で

やりとりを行う必要があるのかを

説明すると長くなるため今回は触れません。

 

 

 

 

 

では、「作業の指示出し」について

もう少し具体的に考えていきましょう。

 

 

 

次のようなオブジェクトがあるとします。

 

 

名前:鈴木さん

 

 

 

名前:ABC銀行ATM

 

 

 

 

あなたはこれらのオブジェクトをみて

どんな「作業の指示出し」が行われると

考えますか?

 

 

 

 

 

 

 

名前:鈴木さん

 

 

「お金を預ける」

 

 

 

 

名前:ABC銀行ATM

 

 

おそらくこんな指示出しを

考えるかと思います。

 

 

 

鈴木さん

 お金をATMに投入する

 

ABC銀行ATM

 お金を鈴木さんの口座に預金する

 

 

 

言い換えると、

 

鈴木さん

 ATMに預金するよう指示出しを行う

 

ABC銀行ATM

 鈴木さんから受け取ったお金を口座に反映する

 

ということです。

 

 

 

これが「作業の指示出し」です。

…なんだか当たり前のことですよね。

 

実はプログラムの世界でも

現実世界と同じことが行われています。

 

 

ですが、多くの人は

プログラムのコードなどによって

惑わされてしまうのです。

 

 

 

この例から分かるように

「オブジェクト指向」とは

私たちが現実世界で

普段から何気なくやっていること

 

 

これをイメージしておけば大丈夫です。

 

 

 

 

 

では、今すぐできるワークを行いましょう。

 

 

①上の例を参考にして

 オブジェクトを2つ考えます。

 

②「作業の指示出し」を以下のテンプレートに

 当てはめて考えてみましょう。

 

 『◯◯が△△に□□するよう指示出しを行う』

 『××が◇◇する』

 

 

 

 

これまで見てきたように

「オブジェクト指向」で大切なのは

「作業の指示出し」です。

 

 

このイメージを

頭に植えつけておくことで

オブジェクト指向言語の学習が楽になります。

 

 

さらに、

この概念が一度分かってしまえば

他のオブジェクト指向言語も

かなり習得しやすくなります。

 

複数の言語を

カンタンに使えるようになる

というわけです。

 

 

 

 

この概念を意識して

あなたのプログラミングスキルを

どんどん向上させていきましょう。

 

 

 

 

それでは

今日も最後までお読みいただき

ありがとうございました!

 

 

 

 

ご意見・ご感想がありましたら

是非、コメントしてください♪

 

 

 

 

 

超文系プログラマ/SE@SEKI