こもだ avatar

【初心者向け】オブジェクト指向とはどのようなものなのか【分かりやすく解説します】

kmdryo

Published: 26 Apr 2020 › Updated: 26 Apr 2020【初心者向け】オブジェクト指向とはどのようなものなのか【分かりやすく解説します】

【初心者向け】オブジェクト指向とはどのようなものなのか【分かりやすく解説します】


プログラミング初心者やプログラミングに興味がある方は“オブジェクト指向”という言葉を聞いたことがあるのではないのでしょうか。

[chat face="business_woman3_1_question.png" name="Aさん" align="left" border="red" bg="red" style=""]オブジェクト指向って聞いたことあるけど何なの?[/chat]

[chat face="business_man3_1_question.png" name="Bさん" align="left" border="blue" bg="blue" style=""]そもそもオブジェクト指向でつくるメリットは?[/chat]

本記事では、オブジェクト指向についてとオブジェクト指向を学ぶべき理由を解説していきます。プログラミングを初めて間もない方、オブジェクト指向について明確に答えを得られていない方はぜひ最後まで読んでみてください。

 

オブジェクト指向とは


プログラミングでいうオブジェクト指向(つまりオブジェクト指向プログラミング)とは、「モノ」を組み立てるように表現して、コンピュータを動作させることです。

簡単に言うと「モノ」を組み立てる=プログラムを“部品化”してそれらを組み立てるということです。

オブジェクト指向プログラミング以外には、上から下までを単調なルールで処理させる手続き型プログラミングやデータに何かしらの処理をして答えを取得するように動作させる関数型プログラミングがあります。

[chat face="businesswoman_b2_kanagaechu.png" name="Aさん" align="left" border="red" bg="red" style=""]つまりオブジェクト指向とは、プログラムを“部品化”する考え方なんだね[/chat]

オブジェクト指向のメリット

[chat face="business_man3_1_question.png" name="Bさん" align="left" border="blue" bg="blue" style=""]オブジェクト指向の考え方は分かったけど、プログラムを“部品化”するメリットってなんなの?[/chat]

結論から言うと、プログラムを“部品化”することで、大規模なシステム開発も比較的簡単にできるということです。

プログラムは基本的に上から順に処理されますが、ソースコードが多くなればなるほど複雑になり、開発者自身も把握しきれなくなるという問題が出てきます。

そこで誕生したのがオブジェクト指向プログラミングという考え方です。

プログラミングを部品化し、それらを組み合わせてシステム開発を行うことで、開発だけでなくエラーや修正部分の特定も容易になりました。

また、部品を使いまわせば同じようなシステムを開発するときにより効率的になります。

[chat face="business_man2_1_idea.png" name="Bさん" align="left" border="blue" bg="blue" style=""]オブジェクト指向によって、ソースコードが誰でも把握しやすいようになって、使いまわしも楽になるんだね![/chat]

 

オブジェクト指向の考え方


ここまでオブジェクト指向の考え方とメリットについて解説していきましたが、なんとなくイメージできたでしょうか。

[chat face="businesswoman_b5_ureshii.png" name="Aさん" align="left" border="red" bg="red" style=""]概念は何となくだけど分かったよ[/chat]

ここからはもう少し深堀して、オブジェクト指向を考える上で大切な項目についてをそれぞれ解説していきます。

 

クラス・インスタンス


まず、オブジェクト指向で大切な“クラス”と“インスタンス”について解説していきます。

“クラス”とは、簡単に言うと“インスタンス”の設計図です。

そして、このクラスに具体的なステータスを与え、メモリ上に生成して実体化したものを“インスタンス”と呼びます。alt
オブジェクト指向では、クラスという設計図を基に実体であるインスタンスが生成されという関係を覚えておきましょう。

 

カプセル化


“カプセル化”とは、データの読み書きや処理の呼び出しを制御する機能です。

カプセル状のお薬をイメージすると分かりやすいと思います。データが外から制御できないように守られています。

alt

これにより、外からのデータアクセスを拒否することができます。

[chat face="businessman2_kangaechu.png" name="Bさん" align="left" border="blue" bg="blue" style=""]カプセル化の機能を使ってセキュリティを上げるのか[/chat]

 

継承


“継承”とは既存のクラス(親クラス)に基づいて、新たなクラス(子クラス)を定義する機能です。

継承を用いることで、親クラスで定義されているデータは、子クラスに引き継がれるため、子クラス独自のデータのみを定義すればOKです。

この継承という機能を使うことで、コピペよりも修正や管理が容易になるというメリットがあります。

 

ポリモーフィズム(多態性)


“ポリモーフィズム(多態性)”とは簡単に言うと、同じ命令を送ったのにも関わらず、それぞれが独立した固有の処理を行うことです。

例えば、犬、猫、ニワトリがいたとして、それぞれに「鳴け」と命令したらどうでしょう。

alt

「鳴く」という動作自体は同じでもそれぞれ鳴き方は違いますよね。

このように同じ命令なのに異なる動作をするという特性から、“ポリモーフィズム(多態性)”と呼ばれています。

 

オブジェクト指向とは:まとめ


今回はオブジェクト指向について解説していきました。オブジェクト指向を理解するのは難しいと思いますが、プログラミングをするにあたり大事な考え方になりますので、ぜひ学習をして理解を深めましょう。最後まで読んでいただきありがとうございました。

Posted from my blog with SteemPress : http://komodblog.com/object-orientation/

Leave 【初心者向け】オブジェクト指向とはどのようなものなのか【分かりやすく解説します】 to:

Written by

Hello, I live in Tokyo.I will post in various ways from now on.

Read more #java posts


Best Posts From こもだ

We have not curated any of kmdryo's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.

More Posts From こもだ