プラス思考、マイナス思考、オブジェクト指向。こんにちは!ミルです。

さて、今回は「オブジェクト指向」という言葉について徹底解説します。

オブジェクト指向とはプログラム言語の書き方の種類の一つです。

中途半端にオブジェクト指向以外の言語を知っていたので逆に理解が難しかったです。そしてまだ完璧にはわかっていません笑。僕の初めての言語はCでした。ですので四苦八苦(あくまでも個人的な感想ですが。。。)。

mobile-phone-1513945_640.jpg

オブジェクト指向の言語はJavaやC#など他にもたくさんあります。

オブジェクト指向を学ぶために、まずは具体例で考えていきましょう!

例はコンビニです!コンビニの商品の在庫管理するシステムをオブジェクト指向の言語で作ると仮定します。


この記事の目次
・クラス
・オブジェクト
・継承
・カプセル化
・ポリモーフィズム
・まとめ

友達追加でプレゼントがもらえる!

LINEat

世界を旅する会社員!
ブロガー、YouTuber、投資家、
サーバーエンジニアとして活躍中!
友達追加してプレゼントをGET!
無料相談も受付中!
LINE@で何を配信してるの??


スポンサーリンク


クラス


コンビニの商品の在庫管理システムを作る中で、オブジェクト指向の「オブジェクトとは何か」を学ぶ前にまず「クラス」というものを理解する必要があります。この場合クラスとは「商品(おにぎり等)」のことです。

クラスオブジェクト


クラスにはそのものの構成要素を含みます。今回で言えばおにぎり。例えば、商品名や具の種類、値段、重さなど様々な項目があります。


もしあなたが具の種類で在庫を調べるときとかに必要ですよね。具の項目をクラスに作ることによって便利な機能を作ることができます。つまり、システムを使う上で「商品」という項目はとても大切ですし、どこからでも参照できるようにしたいのです。


おにぎりの具で在庫を調べるときにはおにぎりの在庫データを参照できるけど、おにぎりを発注をするときはおにぎりのデータを参照できない、みたいなシステムだったらとても不便そうなのは想像がつきますよね。


このようにクラスというものを作ることで、そもそもの「商品を構成する要素」を定義することができるのです。定義すればどこからでも参照することができます。



オブジェクト


オブジェクト

そして次は「オブジェクト」。オブジェクト指向では全ての物事はオブジェクトです。物も処理もオブジェクトです。

この場合でのオブジェクトとは個々のおにぎりの種類のことです。セブンプレミアムのおにぎりのオブジェクト、他にもサンドウィッチ、からあげクン。オブジェクトには商品名や値段などの個々の商品の情報が詰まっています。発注をする処理、在庫を表示させる処理、など処理もオブジェクトの一つです。




継承


継承

おにぎりというクラスがあって、他にも「スーパーおにぎり」と言う商品をこの店では売っていると仮定します。そうするとおにぎりクラスとは別のスーパーおにぎりクラスを作らなければなりません。


でもスーパーおにぎりもおにぎりの構成要素とほとんど同じですよね。その場合に便利なのが、「継承」です。スーパーおにぎりのクラスを作るときにおにぎりの構成要素を文字通り継承して、全く新しいものを作らなくてもいいことになります。これは実際にプログラムを書くときにだいぶ楽になりますよね。


でもこれだけじゃシステムとして成り立ちません。商品の情報が入っているだけです。これをシステムにするにはおにぎりの商品名を入力すると対応するおにぎりの具が表示される、とか、おにぎりの商品名仕入れた日を入力すると適正な値段が表示される、みたいな機能が欲しいですよね。



カプセル化


カプセル化

もし商品名が入力されたらそれに対応する具を表示させるためには、商品名と具を紐付け表示させる処理を行う必要があります。システムを作る中で、「おにぎりの情報が入っているオブジェクト」と、「商品名と仕入日から適正な値段を表示させる」という処理のオブジェクトがあります。


これらが繋がって初めてシステムとして機能しますよね。オブジェクト同士が連携して動いていく。オブジェクト指向の匂いがプンプンします!!


その中でカプセル化とはオブジェクトをカプセルと言う単位にくくってしまって、中身を見えなくすることです。中身を見ることはできないけど、「おにぎりの具の情報を教えて!」と言えば具の情報が帰ってくるし、商品名を入力すれば対応する値段が帰ってくるなど、入力をすれば欲しい結果を得ることができるのです。


これの何がいいの?って感じですよね。これは一人で開発しているときはあまりメリットは感じません。チームで開発するような規模が大きなシステムは全てのプログラムを個人で把握することはとても厳しいですよね。


でも、「この処理のオブジェクトに商品名を入力すれば、対応する具の情報をゲットできる」と言うことを知っていれば、具の情報をまた別の処理で用いるなど様々ことに展開することができます。




ポリモーフィズム


ポリも

先ほどは商品名を入力したらその具が表示されました。次はその同じオブジェクトに商品名と仕入れ日を入力したら適正な値段が表示させようとしました。


同じオブジェクトに、さっきは商品名だけを、今回は商品名と仕入れ日を入力します。でもさっきは具が表示される、今度は値段が表示される、と異なる結果になりました。


このように入力した値の種類や数によって結果が変わるということをポリモーフィズムと言うのです。日本語にすると多様性ですね。


多様な結果を得ることができると言うことです。



まとめ




実際どんなに座学で勉強したところでプログラムをかけるようにはなりません。僕はとにかく実践することをおすすめします。まずプログラムを書いてみること、これが大事です。


今では素晴らしい教材とともに、無料でダウンロードもしなくていいブラウザ上でJavaを動かせるツールとかもあります。
paiza

ぜひやってみてくださいね!

ではまた!

▼ミルさんのSNS
Twitter:ついったー
LINE:らいん
YouTube:ゆーちゅーぶ

スポンサーリンク

シェアする




プロフィール

友だち追加

1993年生まれのIT会社員。サーバーエンジニアとして活躍中。
趣味は読書と海外一人旅。
ブログの内容は主に書評と旅行記です。教育系や経済系の話題などについても書いています。

・プロフィールの詳細はこちら
・運営方針についてはこちら
・お問い合わせはツイッターのDMで。


コメントの投稿










管理者にだけ表示を許可する
トラックバック
この記事のトラックバックURL

スポンサーリンク
純広告
自己紹介

ミル

Author:ミル
友だち追加

ブログの内容は主に書評と旅行記です。

その他にも教育、IT、ゼルダの伝説などについて書いています。


1993年生まれのIT会社員。

サーバーエンジニアとして活躍中。

趣味は読書と海外一人旅。

・プロフィールの詳細はこちら

・運営方針についてはこちら

・お問い合わせはツイッターのDMから!



こちらアシスタントのミリナちゃん。

身長わずか12cm。

マイブームは謎かけ!

・ミリナちゃんの自己紹介はこちら

・デザイナーさんはこちら

フォローする

友達追加でプレゼントがもらえる! LINEat
書籍関連




月別アーカイブ
旅に行く!
今日のツイート

スポンサーリンク
YouTubeでも絶賛活躍中!