オブジェクト指向(プログラミング)とは?

プログラミング

プログラミングを勉強していると、「オブジェクト指向」という言葉をよく耳にしませんか?

「オブジェクト指向って何?」

「どういうものなの?」

「何のためにあるの?」

このような、疑問が上がると思います。

私も初めは全然分かりませんでした。

そこで、この記事ではなんとなく「オブジェクト指向ってこういうことか」というイメージを作ってもらえるように解説します。

オブジェクト指向とは?

オブジェクト指向とは、物事の考え方・捉え方の一つです。

オブジェクト指向プログラミング(または、オブジェクト指向プログラミング言語)という言葉も聞きます。

それは、オブジェクト指向という考え方に基づいて作るプログラム(または、プログラミング言語)のことを指します。

では、一体どのような考え方なのか、次の章で解説していきます。

オブジェクト指向という考え方

端的に言うと、いくつもの「モノ」を作り、それらを組み合わせて何かを完成させる

これがオブジェクト指向の考え方です。

何を言っているのかさっぱり分からないと思うので、RPGを例にして説明します。

RPGには、プレイヤーフィールド武器NPCなどが必要ですよね?

このプレイヤーや敵、フィールド、武器、NPCが「モノ」に当たります。

そして、それらを組み合わせた結果として完成するのがRPGです。

今まではRPGを一つの「モノ」として作っていたのを、オブジェクト指向では、細かい「モノ」に分けて、それぞれを組み合わせたものをRPGとして呼ぶことにしています。

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

なぜこのような考え方をするのでしょうか?

メリットは、プログラムが分かりやすくなることです。

具体的に例を使って説明していきましょう。

オブジェクト指向プログラムでは、主に「モノ」とその「役割(モノができること)」を決めていきます。

「敵」と「武器」の例で見てみましょう。

「銃を装備した敵」「剣を装備した敵」を作るとします。

オブジェクト指向プログラムでは、「敵」「銃」「剣」に分けて作ります。
その中から「敵」と「銃」、「敵」と「剣」を組み合わせて「銃を装備した敵」、「剣を装備した敵」を作ります。

従来のプログラムでは、「銃を装備した敵」「剣を装備した敵」をそれぞれ作る必要があるのです。

オブジェクト指向プログラムで作るモノ

従来のプログラムで作るモノ

  • 剣を装備した敵
  • 銃を装備した敵

これでも、よく違いが分かりませんね…

ここで、「敵」について考えてみましょう。

「敵」HP攻撃力守備力が備わっているとします。
新たにMPを追加することになりました。

オブジェクト指向プログラムでは「敵」について書いたプログラムにMPを追加するだけで、「銃を装備した敵」も「剣を装備した敵」もMPが追加されます。

しかし、従来のプログラムだと、「銃を装備した敵」、「剣を装備した敵」それぞれのプログラムにMPを追加しなければいけません。

今回の例では2種類の敵しか取り上げてないので、さほど苦労はありません。

では、敵の種類が100種類になったらどうでしょう?

100種類それぞれの敵に追加するのはかなり大変です。
また、どこにどの「敵」のプログラムを書いたか探すのも一苦労です。

このように、それぞれの「モノ」に分けて「役割」をまとめて書いておくことができるため、プログラムが分かりやすくなるのです。

まとめ

オブジェクト指向って何?・・・物事の考え方、捉え方

どういうもの?・・・「モノ」毎に分けて「役割」をまとめて書く

オブジェクト指向のメリット・・・プログラムが分かりやすくなる

コメント

  1. […] […]

  2. […] オブジェクト指向は……理解してない。Pythonを学び始めた頃に図書館で「なぜオブジェクト指向なのか」みたいな本買って読んだことあるけど、まじで学びたてだったから1ミリも理解できずに返却した。ホントに、何となく理解するならこのサイトだろうか。後々本でも買って学習しよう。 […]

  3. […] オブジェクト指向は……理解してない。Pythonを学び始めた頃に図書館で「なぜオブジェクト指向なのか」みたいな本買って読んだことあるけど、まじで学びたてだったから1ミリも理解できずに返却した。ホントに、何となく理解するならこのサイトだろうか。後々本でも買って学習しよう。 […]

タイトルとURLをコピーしました