
皆さんこんにちは新米です。
プログラミングを学び始めると、「オブジェクト」というワードを一度は聞いたことありますよね。
「オブジェクト指向によってチョメチョメ…」など聞くと思いますが、いまいちそれだけではピンと来ませんよね💦
実際にWikipediaを見てみると・・・
オブジェクト指向(オブジェクトしこう、英: object-oriented)は、ソフトウェア設計とプログラム記述の際に用いられる考え方である。元々は特定のプログラミング・パラダイムを説明する為に考案された言葉だった。object-oriented programmingのように修飾語として用いられるのが常であり、それ単体で扱われる事はない漠然とした設計構想でもある。
参考:Wikipedia
なんじゃこれ??訳わからん(泣)
その気持ちすごくわかります!
僕もプログラミングを学び始めた時はサッパリわかりませんでした(笑)
でも大丈夫です!あなたが悩んでいることは、他の人も悩んでいることです。
1つ1つ理解していきましょう!
それではオブジェクト指向について解説していきます。
3分でわかる!オブジェクト指向のイメージ像
オブジェクト指向とは効率良く開発を行うために存在します。
皆さんが1人でプログラミング学習をしている場合は
そこまで複雑なコードや何百何千行の長〜〜いコードを書かないと思います。
しかし企業がグループ単位で開発するものは開発のスケールが大きいです。
そのため、コードが複雑化したりする可能性が高くなります。
つまり、コードをいかに整理して効率良く作業していくかが重要になっていきます。
そこで使用されるのがオブジェクト指向です。

オブジェクト指向は開発の効率化を良くするためにあるんだね!

オブジェクト指向を使わなくてもプログラミングは書けますが、使用しないとのちのちプログラマーが苦しくなっていきます。
オブジェクト指向は、何か考えの元にそって作っていきます。
あらかじめ事前に物事を決めておくと言う事です。
例えば、仕事もそうです。何も考えないで、いきなり仕事に取り組みませんよね。
上司に「〇〇の様に・・・して取り組んで」とあらかじめ言われますよね。
その言われた内容を元に作業していくと思います。
それと同様にプログラミングも設計を元に開発を行います。
設計は皆さんがイメージしている「設計」と同じです。
家を建てる時も設計書は必要ですよね。プログラミングも同様です。
その設計を作成するためには、先ほど紹介した以下の3つの要素を考慮しないといけません。
オブジェクト3大要素
になります。
それでは3つの説明をざっくり話していきます。
それぞれ別の記事で詳しくまとめていますので、そちらを読んで更に理解を深めていってください。
カプセル化
例えば、車の設計書を元に書いているプログラムが
バイクの設計を元に書いているプログラムから邪魔を受けるようなコード設計だったらダメですよね。
カプセル化とは外部に情報を変えられないようにするため、外部からのアクセスを防止する事です。

継承
例えば、車にも色々な種類があります。
トラック、スポーツカー、軽自動車など…
それぞれ「車」ではあるけれど、仕組みは異なります。
「車」として最低限必要な機能や部品は共通して持っていて 「走る」と言う機能や「タイヤ」などの部品があります。
共通部分は何かを事前に考えておくことで、車の種類を増やす際に、使い回すことが出来ます。
そういう共通部分から派生していく考えを継承と言います。

ポリモーフィズム
例えば、車には「走る」機能があります。電気自動車なら走る時にモーターを動かし、スポーツカーならエンジンを動かします。
「走る」という機能は変わりませんので、利用者は実際の動作を知らなくて大丈夫なのが利点です。
つまり、操作方法が同じでもそれぞれの振る舞いが違う考え方が「ポリモーフィズム」です。

まとめ
いかがだったでしょうか。
設計とカプセル化・継承・ポリモーフィズムについてざっくり説明しました。
これら3つの考え方をベースに設計していき、実際にコードを進めていく、開発していくのがオブジェクト指向という考え方です。
ザックリな内容だったのでオブジェクト指向について何かイメージが湧いていただけたらいいなと思います。
また今回紹介した内容を別の記事でより詳しく解説していますので良ければ見てね!
コメント