多態性(ポリモーフィズム)を理解する

オブジェクト指向の華ともいえるのが、この多態性(ポリモーフィズム)です。

多態性(ポリモーフィズム)
スーパークラスで設定したメソッドと同名のメソッドをサブクラスで用いることで、同一のメソッド名を用いながら、クラスによって異なる処理をさせられること。

前章までで、BulletとEnemyの衝突判定については問題なく処理できました。

シューティングを作る上ではこれでも特に問題ありませんが、ここでは勉強のために、前述の多態性を用いてコードを書きなおしてみます。

まず、Fieladの中で別々に宣言していたbullet、enemiesという変数ですが、GameObjectクラスを用いて、objectsという一つの変数にまとめてしまいましょう。

BulletとEnemyをobjectsにまとめたのに合わせて、actionPerformed()メソッドを大幅に書き換えました。

順番に意味を追っていけば、決して理解できない内容ではないので、しっかりついてきてください。

まず、最初のforeach文では、objectsに格納された各objectに対して処理を行うことを示しています。

続いて来る以下の文で、もしそのオブジェクトが死んでいたら、そのオブジェクト分のループを1回パスする指示を出しています。

もしパスされなかったら、そのオブジェクトは生きていることを意味しているので、衝突判定を行っています。

ここでは、BulletもEnemyも複数出すことにしたので、衝突対象となるオブジェクトをcounterとして、もう一度foreach文を回しています。

以上です。

これらの書き換えがうまくいっていれば、章の冒頭に乗せたようなシューティングができていると思います。

……いかがだったでしょうか。ついてこられましたか?

ひとまずオブジェクト指向についての説明は以上ですが、本記事はもう少し続きます。

[転職率95.1%]最短22日で未経験からプログラマーへ『GEEK JOB 転職コース』
geekjob_to_gol_banner_sp_06

『GEEKJOB 転職コース』では未経験からでもプログラミングや仕事の進め方を学習でき、プログラマーとして転職/就職できるまでサポートします。

  • 短期集中のプログラミング学習で未経験から最短22日での転職/就職ができる

  • IT業界の採用を熟知したメンターが就活サポート

  • わからないことは現役プログラマに質問できる

  • オフィスで働く上で必要なスキルを身に付けられる

  • 紹介可能企業は500社以上


文系出身だから、全くプログラミング経験がないから、プログラミングの学習に挫折してしまったから、といった方も関係ありません。

未経験からプログラマーを目指せる環境を用意しています。

詳しく見る

この記事の内容について報告する