プログラミング Java

オブジェクト指向が難しいと思うならこれを読め!

投稿日:2022年3月12日 更新日:

オブジェクト指向はJava、JavaScript、PHP、Python、Rubyなどなど
色んな言語で使われているパラダイム(考え方)です。

上から順に追っていくだけ(手続き型)ではわからない仕組みになっていることがあり、理解するまでには時間がかかる代物ですよね。

ということで、当記事を読んで頂ければ解決の一助になるはずです。

基本概念

オブジェクト指向はSmalltalkという言語が発祥です。

オブジェクト指向の基本概念をすごく簡単に言うと、
「データと処理を一つにまとめたもの」です。
クラスの基本構成はフィールド(データ)とメソッド(処理)であることからもわかると思います。

なので、処理したい粒度でデータと処理が記述されているものだということがわかればそれでOKです。
小難しい実装はやっていればわかるようになるし、できるようになります。

デザインパターン

オブジェクト指向を理解したかったら、デザインパターンを何個か実際にコーディングしてみるのが一番です。
特にStateパターンCompositeパターンあたりを何個か書いてみると「ほう、こういうことだったのか~」という感じになります。

1回じゃ多分わからないと思いますよ?
2~3個くらい似たいようなものを書いてみて、見比べてみて、なんでそう動くのかを自分で確かめてみるという工程があって初めて理解できます。

オワコンか?

う~ん、オブジェクト指向を使うべきかどうかはケースバイケースだと思うので、オワコンな環境ではオワコンなんじゃないでしょうかね(笑

Javaにも関数型のパラダイムが表れてきていますし(Stream)、別に無理にオブジェクト指向っぽく書かないといけないということもないと思います。

元々はデータと処理をひとまとめにしておくというのが基本的な考え方なので、内部の処理方法の細かい部分まで神経質にこだわるほどのものでもないです。

オブジェクト指向で書いた方がよい場面であればそのように実装すればいい、というくらいに考えて置く方が柔軟に対応できて生産性も高まるはずです。

なぜ必要か?

クラス単位で分けていると保守しやすいし、影響範囲をそのクラスに限定できるのでバグが混入しづらくなります。
というのが基本的な見解です。

「なぜ必要か?」
ということについてあまり深く気にする必要はありません。
本当に必要になった時になぜ必要なのかはわかるようになっていますので、今は深く気にせずに、今できる成長に注力しましょう。

おすすめの書籍はありますか?

これがいいんじゃないでしょうか?

オブジェクト指向の学び方、習得のヒント、苦手克服方法まで書かれています。
長いプログラムを書けない人、読めない人へのアドバイスもあるので、オブジェクト指向は難しいなぁと思っている方の悩みを解決する1冊です。

まとめ

  • オブジェクト指向とは要するに「データと処理を一つにまとめたもの」
  • 理解したかったらデザインパターンを何個か書いてみる。
  • オワコンかどうかはその人、その環境次第
  • <必要な時になったら本当に必要な理由はわかるようになっている。/li>
  • 使えるようになりたいならこの1冊

 
最後までお読み頂き、ありがとうございました!
ご意見・ご要望がありましたら、遠慮なくコメント下さい!
もし内容が良かったらランキング評価を頂けると励みになります(^^)

ランキング評価する

-プログラミング, Java
-,

執筆者:


comment

メールアドレスが公開されることはありません。

CAPTCHA


関連記事

kotlin,

【Kotlin】SpringのテストでUnsatisfiedDependencyExceptionが発生した場合の解消方法

概要 Qurifier指定をしたRepositoryをDIしたContollerをテストしたときにUnsatisfiedDependencyExceptionが発生した状況と解決方法です。 (参考書籍 …

no image

【PHP】配列と連想配列と多次元配列の説明と使用例

配列とは? 1つの変数に複数の値を持つものです。 整数型や文字列型は1つの変数に1つの値を持ちますが、配列は同じようなデータの集まりを1つの変数に持つことができるようになっています。 配列には通常の添 …

【Java】オブジェクト指向の練習題材(会計オブジェクト)

前回記事、オブジェクト指向とは何なのかを簡単に説明してみるの練習題材です。 ここでは3つのオブジェクトを作成していきます。 – 会計オブジェクト:会計金額の算出 – 請求書オブ …

【JdbcTemplate】Queryの書き方(更新系)

  前提 以下のテーブル(users)を持ち、格納するのはUserクラスという想定で説明していきます。 usersテーブル

【SpringBoot入門】#1~ 開発環境を準備しよう(IDE)

想定読者 SpringBootを始めて学ぶ方   IDE(Eclipse) IDEにはEclipse以外にもNetBeansやIntelliJがあります。 好みによりますので使いやすいものを …

SpringFramworkの良書

■おすすめ教材
Javaの基本を学んだ人が、次のステップとして読む本(中級者向け)

※SpringはJavaのFrameworkの1つです。
変更のしやすさ、保守性の高さが特徴です。