2020/01/12(日)プログラミング初心者の方がぶつかる壁の一つは「オブジェクト指向とは?」という問いに明確な答えを得られないことでしょう。私も当時は「?」マークがつきっぱなしで混乱してました。Aさんそもそもオブジェクト指向でつくると何が良いのですか?オブジェクト指向を学ぶべき理由も踏まえて、本記事ではオブジェクト指向についてわかりやすく解説していきたいと思います。今後のオブジェクト指向学習についてオブジェクト指向のクラス/インスタンスオブジェクト指向のカプセル化オブジェクト指向の継承オブジェクト指向の多態性オブジェクト指向とは?【まとめ】オブジェクト指向とは?わかりやすく解説オブジェクト指向とは、ソフトウェアを開発するときに用いる”部品化”の考え方。オブジェクト指向では(※)手続き型プログラミングと異なり、確固たる根拠に基づいてプログラムの部品化を行います。(※)手続き型プログラミングとは、コンピューターが実行すべき命令や手続きを上から順番に実行していくもの。オブジェクト指向とは、ソフトウェアを開発するときに用いる”部品化”の考え方。オブジェクト指向でなぜつくるのか?前章でオブジェクト指向とは部品化の考え方ということは理解できたかと思います。Aさんでも、オブジェクト指向で部品化を行うメリットがわかりません。ハニ太郎それはオブジェクト指向という部品化の考え方が誕生した経緯を知れば理解できるよ♪オブジェクト指向が誕生するまでは手続き型プログラミングで開発が行われていました。これでも理論上はどんなに大きなプログラムでも記述できるのですが、ソースコードが長く複雑になるにつれて開発者自身が把握しきれなくなるという問題が出てきたのです。ハニ太郎つまり、人間がプログラム開発のボトルネックになってしまったんだ。そこで誕生したのがオブジェクト指向という考え方になります。オブジェクト指向という部品化の仕組みに従ってプログラムを書くことで、大規模なシステムも比較的簡単に開発できるようになりました。オブジェクト指向で開発する理由は、人間が把握しきれない複雑さを克服するため。私たちが開発するプログラムは現実世界における活動を自動化するためのものです。言ってみれば現実世界とは無関係に単独で存在しているプログラムはほとんどありません。AさんATMとかも昔人間がやっていたことを自動化したものですもんね。オブジェクト指向プログラミングではいきなりコードを書くことはせず、まずは現実世界の観察を行い設計図を描きます。そこに登場する人や物、つまりオブジェクト単位でプログラムを分割するのです。現実世界に出てくる人や物を一つの単位としてプログラムを分割する。ここでプログラマが考えなければならないのは、オブジェクトをどのように作りどのように連携させるかということです。要するに、我々がよく把握している現実世界を模倣して作られたプログラムもまた我々にとって把握しやすいので、オブジェクト思考を用いることで複雑さを克服できるのです。オブジェクト指向の考え方として、現実世界の振る舞いをプログラム上で再現することが挙げられる。それによって複雑さを克服できる。今後のオブジェクト指向学習についてここまで「オブジェクト指向とは?」という基礎の基礎について解説してきました。これまでの内容を理解できたところでオブジェクト指向を用いた開発ができるようになるといったらそうではありません。今後のオブジェクト指向学習が大切♪オブジェクト指向について効率的に学べるよう、重要項目それぞれについて記事を書いたので参考にしてみてください。多態性/ポリモーフィズムオブジェクト指向のクラス/インスタンス”クラス”とは、いわばインスタンス(オブジェクト)の設計図になります。「オブジェクト」という言葉は曖昧で、クラスのことを指す場合もあるが、基本的にはクラスから生み出されるインスタンスのことだと思ってもらえればOK。このクラスという設計図に対して具体的な属性値を与え、メモリ上に生成してポコリと実態化させたものを”インスタンス”と呼びます。オブジェクト指向では、クラスという設計図を基に実体であるインスタンスが生成されるという関係をまずは押さえておきましょう。オブジェクト指向のクラスとインスタンスについてわかりやすく解説オブジェクト指向のクラスとインスタンスについて初心者向けにわかりやすく解説。設計図であるクラスから生み出せれた実体がインスタンス。...クラスとインスタンスの詳しい内容につきましては上の記事を参考にしてみてください。オブジェクト指向のカプセル化”カプセル化”とは、データの読み書きやメソッドの呼び出しを制御する機能です。大切なデータを外から簡単に書き換えられるプログラムだと恐ろしいですよね?そんな恐ろしい事態を防ぐための機能がカプセル化になります。オブジェクト指向のカプセル化についてわかりやすく解説オブジェクト指向のカプセル化について初心者向けにわかりやすく解説。カプセル化とはデータの読み書きやメソッドの呼び出しを制御する機能で、想定しないクラスの利用防止や問題が発生した際に原因の特定を容易化できる。...カプセル化の詳しい内容につきましては上の記事を参考にしてみてください。オブジェクト指向の継承”継承”とは既存のクラス(親)に基づき新たなクラス(子)を定義するための機能です。継承という機能を使うことで、親クラスのメンバ(データ・メソッド)は自動的に引き継がれるため、子クラスでは差分だけを記述すればOK。オブジェクト指向の継承についてわかりやすく解説オブジェクト指向の継承について初心者向けにわかりやすく解説。継承とは、既存のクラスに基づき新たなクラスを定義するための機能で、継承の目的はis-aの関係を明示的に表すことになります。...継承の詳しい内容につきましては上の記事を参考にしてみてください。オブジェクト指向の多態性”多態性/ポリモーフィズム”とは、同じ命令を送ったにも関わらずそれぞれが独立した固有の処理を行う特性を指します。以下のような図形クラスから継承によって作られた子クラス群があるとしましょう。各子クラスは親クラスから継承したWriteメソッドをオーバーライドしているとします。これらの子クラス群に同じ命令を送ると・・・以下の図のように動作するのです。このように同じ呼び出し方なのに異なる動作をするという特性から多態性/ポリモーフィズムという名前がつけられています。オブジェクト指向の多態性(ポリモーフィズム)についてわかりやすく解説オブジェクト指向の多態性(ポリモーフィズム)について初心者向けにわかりやすく解説。多態性/ポリモーフィズムとは、同じ命令を送ったにも関わらずそれぞれが独立した固有の処理を行うという特性を指します。...多態性/ポリモーフィズムにつきましては上の記事を参考にしてみてください。オブジェクト指向とは?【まとめ】まとめオブジェクト指向とは、現実世界の振る舞いをプログラム上で再現するための部品化の考え方を指す。オブジェクト指向のメリットは人間にとって把握しやすい現実世界の振る舞いを模倣することによるプログラムの複雑さを克服できること。オブジェクト指向とは?という基本が理解できた後はオブジェクト指向の重要機能であるカプセル化・継承・多態性について学んでいこう。オブジェクト指向はとにかく理解することが大切なので、本記事を何回も読み返すなり参考書籍を読むなりして理解を深めていきましょう。【初心者向け】オブジェクト指向を学ぶのにおすすめの本5選オブジェクト指向を学ぶのにおすすめの本を初心者向けに紹介。どの本も良書なので一冊を繰り返し読み返すことでオブジェクト指向をマスターすることができるでしょう。...オブジェクト指向で躓く人は多いですが、理解さえできれば大きなメリットを享受することができるので頑張ってください!本記事がオブジェクト指向の理解促進に少しでもお役に立てたのなら幸いです。【初心者向け】Java学習におすすめのプログラミングスクール5選Javaを学習するのにおすすめのプログラミングスクールを5つ紹介。プログラミングスクールはJava学習に必須ではありませんが、学習のショートカットに役立ちます。LIFE本記事はPythonのフレームワーク、Djangoを学ぼうと考えていらっしゃる方向けです。LIFE本記事ではオブジェクト指向の多態性/ポリモーフィズムについて解説しています。LIFE本記事ではPython開発者向けにテキストエディタであるVisualStuidoCodeについて紹介していきたいと思います。LIFE”Ruby”を使ってWebアプリを開発したいという人は数多くいますが、その学習手順を知らない人もまた数多く存在することでしょう。コメントをキャンセルメールアドレスが公開されることはありません。付いている欄は必須項目です次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。某外資系IT企業に勤める傍ら副業中のエンジニア。当サイトではエンジニア向けにお役立ち情報を発信しています。