今回は、Python での「オブジェクト指向」についてサクッと解説します。
オブジェクト指向は、部屋の整理整頓に似ています。
たくさんのものが雑然とあるよりも、
整理されている方がわかりやすいですよね。
オブジェクト指向プログラミングとは、
プログラミングで使うデータや手順を、
整理して記述していこう
という考え方になります。
具体的にプログラムとして書くときには、
「クラス」やクラスの「メソッド」を使って書いていきます。
なので、クラスを書くときにもオブジェクト指向の考え方は役立ちます。
ただし、もしあなたがプログラミングの超初心者なら、
オブジェクト指向は飛ばしても全然オッケーです。
オブジェクト指向でなくても、大抵の処理はプログラミングできるからです。
プログラミングに慣れないうちは、オブジェクト指向を学ぶのは後回しでも全然構いません。
とはいっても、ある程度の規模のプログラムを読む、といった場合には、
オブジェクト指向を理解できていないと、プログラムの処理を理解できないのも事実です。
そこで本記事では、Python オブジェクト指向プログラミング について
- オブジェクト指向(object oriented)とは?
- オブジェクトとは?
など、オブジェクト指向の基本知識について、サクッとご紹介します。
【Python 文法 独学】Python 「オブジェクト指向」とは?「オブジェクト」とは?などもサクッとまとめました【Python 学習 初心者】
オブジェクト指向とは
オブジェクト指向とは、
「オブジェクト」を使ってプログラミングを行う考え方です。
オブジェクト?なにそれ?
と思われるかと思います。
どういうことか説明していきますね。
「プログラミング」では、目的達成のために、
- データ
- 手順
を記述していきます。
例えば、入力した値を2倍にして出力するプログラムでは、
- データは入力した値
- 手順は2倍する
ということになります。
これらを組み合わせることで、プログラムが出来上がることがわかります。
ここで考えてほしいのですが、
たくさんのものがある部屋があったとします。
(1), たくさんのものは、雑然と置かれている
(2), たくさんのものは、整理されて置かれている
この2つの部屋だと、
(2)の方が、どこに何があるかわかりやすいですよね。
プログラミングでも同じことなんです。
使うデータや手順がたくさんあったら、
- それらを整理してプログラミングしよう!
という発想があるわけです。
その整理の仕方の1つが「オブジェクト指向」になります。
特に大規模なプログラムでは、たくさんのデータや手順が必要です。
そういった場合に、オブジェクトという考え方を使って、
たくさんのデータや手順を
- 似ているもの、関係が深いもの
- 似ていないもの、関係が薄いもの
のように、
互いの「関係性」「関連性」に基づいて整理します。
関係性?なにそれ?
と思われるかと思いますので、具体的に説明しますね。
「オブジェクト」とは?
例えば、データとして、
[りんご、犬、みかん、メロン、猫]
手順・方法として、
【食べる、育てる、皮をむく、餌をやる】
といったものがあったとします。
これをそのまま考えるとなんだか雑然としてますよね。
それよりも、以下のように整理した方がわかりやすいかと思います。
グループ1:
データ:[りんご、みかん、メロン]
手順・方法:【食べる、皮をむく、育てる】
グループ2:
データ:[犬、猫]
手順・方法:【餌をやる、育てる】
このように、全体のデータと手順は、
関連性の高いものをひとかたまりとして、
2つのグループに分けられています。
整理することで、全体の見通しが良くなっていることがわかってもらえるかと思います。
この関連性の高いグループのそれぞれを、
プログラミングでは「オブジェクト」と呼んでいます。
この例では、
オブジェクト1は、グループ1
オブジェクト2は、グループ2
ということになります。
オブジェクト指向を説明したものの中には、
これらを「抽象化(ちゅうしょうか)」といった言い方をしているものもあります。
確かに抽象化ですが、ちょっとピンときにくい方もおられるのではないかと思います。
「オブジェクト指向プログラミング」とは、
ひらたく言うと、
似たものを集めて幾つかのグループに整理して、
それを反映させたプログラムを書くこと
と言えます。
つまり、
- オブジェクト指向とは、グループ指向
と言ってもいいかと思います。
というわけで、まとめると、
- 「オブジェクト」とは互いに関係が深いデータや手順をひとかたまりにして表現したもの
- 「オブジェクト指向」とは、オブジェクトを活用してプログラミングを行うことを指します。
というわけで、本記事では、
Python オブジェクト指向プログラミング について
- オブジェクト指向(object oriented)とは?
- オブジェクトとは?
など、オブジェクト指向の基本知識について、サクッとご紹介しました。
こちらもございます↓
「オブジェクト指向」については、こちらの書籍でも解説しています(無料)↓