[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="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]
ここからはもう少し深堀して、オブジェクト指向を考える上で大切な項目についてをそれぞれ解説していきます。
“クラス”とは、簡単に言うと“インスタンス”の設計図です。
そして、このクラスに具体的なステータスを与え、メモリ上に生成して実体化したものを“インスタンス”と呼びます。
オブジェクト指向では、クラスという設計図を基に実体であるインスタンスが生成されという関係を覚えておきましょう。
カプセル状のお薬をイメージすると分かりやすいと思います。データが外から制御できないように守られています。
これにより、外からのデータアクセスを拒否することができます。
[chat face="businessman2_kangaechu.png" name="Bさん" align="left" border="blue" bg="blue" style=""]カプセル化の機能を使ってセキュリティを上げるのか[/chat]
継承を用いることで、親クラスで定義されているデータは、子クラスに引き継がれるため、子クラス独自のデータのみを定義すればOKです。
この継承という機能を使うことで、コピペよりも修正や管理が容易になるというメリットがあります。
例えば、犬、猫、ニワトリがいたとして、それぞれに「鳴け」と命令したらどうでしょう。
「鳴く」という動作自体は同じでもそれぞれ鳴き方は違いますよね。
このように同じ命令なのに異なる動作をするという特性から、“ポリモーフィズム(多態性)”と呼ばれています。