すっきり分かるJava入門編を勉強していて、今までよりオブジェクト指向についてイメージが鮮明になったのでアウトプットしておこうと思います。
オブジェクト指向という考え方は定義が曖昧で理解しにくいものであり、私自身理解できてないと思いますが、書籍では、現実の物や人などをクラスのインスタンスに置き換えて考えるとありました。
今まではコードの共通の部分をインスタンス化によって、書く量が減り、作業が楽になるくらいのイメージでした。
システム開発とは今まで人がやっていたことを機械で自動化させることですよね。つまり、その人や物をクラスのオブジェクトとすることで機械が代わりにやってくれる仕組みを作ることができるという考えだと知りました。
継承についてもis-aという考え方を知りました。これは子クラスが親クラスの一部であるという考え方です。オブジェクトとは実際の人や物を置き換えたものなので、コード的に問題がなくても、現実世界で不自然な関係になる継承はしてはいけません。
この考え方がすごく分かりやすくて、僕は感動しました。私の入社する企業では、システム開発において知見を広げることを重視しています。この意味がやっと分かった気がします。
良いシステム開発をするならば、現実の仕組みをクラス、オブジェクトに置き換えたらどうなるのかという仮説を日常で考えるべきなんだと知りました。