プログラミング Java

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

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

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

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

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

基本概念

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

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

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

デザインパターン

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

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

オワコンか?

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

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

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

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

なぜ必要か?

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

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

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

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

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

まとめ

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

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

ランキング評価する

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

執筆者:


comment

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

CAPTCHA


関連記事

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

前回記事、オブジェクト指向とは何なのかを簡単に説明してみるの練習題材です。 ここでは2つのオブジェクトを作成していきます。 成績オブジェクト:教科と点数などを保持 生徒オブジェクト:氏名と成績を保持 …

【Java】TDDして汎用的な部品を作成する(日付期間オブジェクト)

目的 TDDブートキャンプというセミナーに参加して面白かったので、 自分で何かやってみようと思った。 仕様 日付期間を保持するオブジェクトである。 開始日と終了日を持つ。 開始日と終了日を持つことをど …

junit, テスト, junit5

【Junit5】表示名のカスタマイズ(@DisplayName)

概要 Junit5で表示名をカスタマイズする方法です。 Junit4については以下を参考にしてください。  ↓ https://irof.hateblo.jp/entry/20130124/p1 でき …

【Java】ArrayListの使い方まとめ

概要 ArrayListはOracleの公式ページでも明記しているクラスです。 Java SE 11 Programmer I (1Z0-815-JPN) 試験 インタフェースによる抽象化 インタフェ …

【Node.js】Excel⇔JSON変換する方法

やること 1.ExcelファイルをJSONで取得。 2.JSONの編集後、新しいExcelファイルに出力する。 環境 Node.js ・インストール  https://nodejs.org/ja/   …

SpringFramworkの良書

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

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