プログラミング入門 Javaはオブジェクト指向だけど何が嬉しいの?

はじめてプログラミングをやってみたのがJavaだったけど、オブジェクト指向で書くと何が嬉しいのかよく分からないと思います。

オブジェクト指向の良いところを挙げたいと思います。

再利用がしやすい

プログラムを書く時に同じ処理を何度も書くのは面倒だし、修正が入ったときに全部書き換えないといけないのでバグを生みやすくなります。

オブジェクト指向では、作ったクラスを再利用できます。

また、継承を使えば、すでにある機能に新しい機能を追加することも簡単です。

すでに書かれているコードに影響を与えにくい

各オブジェクトごとに動作を持たせることができるので、既存のコードを変えなくてすみます。

例えばサッカーボールを動かす処理を書きたいとします。

関数の場合はmove()という関数をつくり、サッカーボールを引数に受け取って転がします。

しかし、仕様追加が入り、「ゴムボールの場合は弾ませる」となった場合、move()の中で条件分岐する必要があります。条件分岐を書くと言うことは元のコードを変更することになります。

元のコードを変更するということは、既存の転がすという動きが正しく動くかを再度チェックしなければなりません。

オブジェクト指向の場合、サッカーボールというクラスとゴムボールというクラスの二つを作ります。

それぞれでmove()というメソッドを持つので、お互いに影響はありません。

新しいボールが増えたとしても、同じようにクラスを追加するだけなので、サッカーボールとゴムボールの動きには影響がありません。

データとそれを操作するメソッドがセットになっている

オブジェクトにはインスタンス変数とそれを操作するメソッドがあります。

このように、データとそれを操作する処理がセットになっているので理解しやすいです。

関数の場合は、move()という関数があっても、これが何をmoveするのかは実装をみないとわかりません。

オブジェクト指向の場合は、ballというクラスにmove()というメソッドが定義されているので、その役割が容易に分かります。