検索

キーワード


【java】オブジェクト指向とは?3大要素の概要と特徴まとめ

  • 公開日:2020-10-20 21:01:13
  • 最終更新日:2021-01-26 09:32:30
【java】オブジェクト指向とは?3大要素の概要と特徴まとめ

こんにちは、駆け出しプログラマーの若江です!

ここでは初学者として学習を終えた私からアウトプットの意味も込めて、

オブジェクト指向の概要について紹介させていただきます。

できる限り初学者が理解しやすい内容として紹介させていただくので、参考となれば幸いです!


関連記事リンク:カプセル化と隠蔽の紹介 / 継承の紹介 / ポリモーフィズムの紹介

オブジェクト指向の特徴まとめ

オブジェクト指向は Java の核とも言える「概念」です。

Java の学習を進める上で重要な考え方となるオブジェクト指向について、

ここではその概要を紹介させていただきます。


オブジェクト指向とは?

オブジェクト指向の「オブジェクト」とは「物」を指します。

本来手元には形として残らない無形のプログラムを、現実社会で有形である「物」のように扱うことで

プログラムを読みやすく、理解しやすく、変更しやすく、更にプログラミングの負担を軽減することができます。


オブジェクト指向の考え方が取り入れられたことにより、

無形ではありますがよりモノ作りに近い感覚でプログラミングができるようになりました。

まるで設計図を作成して、ネジや筐体・ボタンなどの部品を生成・組み合わせて電気製品ができるような感覚です。


オブジェクト指向の物とは、「情報の集まり」を指し、

情報とは「数値などのデータ」や「一定の指示に従った処理」を指します。

例えば私たちが目にする軽自動車などはモノ作りで言う所の完成形であり、

プログラミングでは開発するプロジェクトそのものにあたります。

この軽自動車を構成するエンジンやハンドル、タイヤやバッテリー、ウィンカーなどは軽自動車の部品にあたり

オブジェクト指向の開発に置き換えるとオブジェクトとして扱われます。


オブジェクト指向が取り入れられたことにより、

それまでは難題となっていた大型プロジェクトの開発などがしやすくなりました。

オブジェクト指向は、3つの基本的なモノの考え方を軸に成り立っています。


独立性

Java ではオブジェクト同士を組み合わせて1つのプログラムを作り上げますが、

それぞれのオブジェクトは可能な限り他のオブジェクトへ影響を与えず、与えられずの

独立的な関係を築くことが理想です。

独立性を高めることで、機能追加やプログラムの変更を行った際でも他のオブジェクトへの影響がなくなっていきます。

このように独立性を高めることを「カプセル化」によって実現させます。


【カプセル化の紹介記事】 カプセル化と隠蔽の紹介


再利用性

類似した特徴を持つオブジェクトがあった場合に0から新たにオブジェクトを作るのではなく、

既存のモノを再利用することでプログラミングの負担軽減をはかります。

またプログラム全体に統一性が出る他、重複したコードの記述もなくすことができ、

読みやすいプログラムを設計することができます。

Java では再利用性を「継承」によって実現させます。


【継承の紹介記事】 継承の紹介


拡張性

継承によって受け継いだ特徴を様々な個性へ派生させることで、

オブジェクトの扱い方に幅を利かせることができます。

柔軟な対応ができるオブジェクトを作成することで、

プログラムの変更にかかる労力を削減でき、プロジェクト全体を見やすくできます。

拡張性は「ポリモーフィズム」の概念を取り入れることで実現させます。


【ポリモーフィズムの紹介記事】 ポリモーフィズムの紹介



まとめ

「独立性」「再利用性」「拡張性」がお互いに関わり合うことでオブジェクト指向を実現させることができます。

ただしオブジェクト指向を実現させるには、3つの要素を適切に実現させなくてはなりません。

特に「再利用」と「拡張」をし過ぎると読み辛く利用し辛いプログラムになるため注意が必要です。

オブジェクト指向で実現したいことを理解した上で Java のプログラミングを行うようにしましょう。

それぞれの詳しい紹介は、各記事でさせていただきますのでリンクよりご確認ください。


関連記事リンク

カプセル化と隠蔽の紹介 / 継承の紹介 / ポリモーフィズムの紹介



【著者】

若江

30代で異業種となるIT業界へ転職した駆け出しのプログラマです。これまで主に Java や Ruby、HTML/CSS を使って学習を目的としたショップサイトや掲示板サイトの作成を行いました。プログラマとしての経験が浅いからこそ、未経験者の目線に近い形で基礎の紹介をしていきたいと思います。

よく読まれている記事
【Java】JSPでタグライブラリを使う(JSTL)

【Java】JSPでタグライブラリを使う(JSTL)

こんにちは。エンジニアの新田です!ここでは、システムエンジニアとして働いている私が、システム開発手法や開発言語について紹介していこうと思います。今回は、JSPの標準タグライブラリ「JSTL」について紹介します。Javaについて勉強している方、Webアプリケーションを構築したいと思っている方の参考になれば幸いです!関連記事リンク: 【Java】JSPの基本的な構文/【Java】JSPのアクションタグ

【Java】Stringクラス文字列を操作するメソッドの使い方まとめ!実例も紹介!

【Java】Stringクラス文字列を操作するメソッドの使い方まとめ!実例も紹介!

こんにちは。新人エンジニアのサトウです。システムエンジニアとして駆け出したばかりですが、初心者なりの視点でわかりやすい記事を心がけていますので参考になればうれしいです。プログラム初心者✅にも、プログラムに興味がある人✨も、短い時間で簡単にできますのでぜひこの記事を読んで試してみてください!そもそもStringとは何?『 String 』... Java言語において文字列のデータ型を指します。基本デ

【Java】文字列の置き換え(String#format)!エスケープシーケンスのまとめも!!

【Java】文字列の置き換え(String#format)!エスケープシーケンスのまとめも!!

こんにちは。新人エンジニアのサトウです。システムエンジニアとして駆け出したばかりですが、初心者なりの視点でわかりやすい記事を心がけていますので参考になればうれしいです。プログラム初心者✅にも、プログラムに興味がある人✨も、短い時間で簡単にできますのでぜひこの記事を読んで試してみてください!Stringクラスformatメソッドの文字列整形【java.utilパッケージ】Formatterクラスfo

【Java】文字列格納後に変更可能!?StringBufferクラスとStringBuilderクラス!

【Java】文字列格納後に変更可能!?StringBufferクラスとStringBuilderクラス!

こんにちは。新人エンジニアのサトウです。システムエンジニアとして駆け出したばかりですが、初心者なりの視点でわかりやすい記事を心がけていますので参考になればうれしいです。プログラム初心者にも✅、プログラムに興味がある人✨も、短い時間で簡単にできますのでぜひこの記事を読んで試してみてください!文字列を扱う3つのクラス【java.langパッケージ】java.langパッケージの文字列を扱うクラスにはS

【Java】値?変数?型??しっかり解説!『データ型(プリミティブ型と参照型)』

【Java】値?変数?型??しっかり解説!『データ型(プリミティブ型と参照型)』

こんにちは。新人エンジニアのサトウです。システムエンジニアとして駆け出したばかりですが、初心者なりの視点でわかりやすい記事を心がけていますので参考になればうれしいです。プログラム初心者✅にも、プログラムに興味がある人✨も、短い時間で簡単にできますのでぜひこの記事を読んで試してみてください!プリミティブ型と参照型プログラム開発では型を持った変数を使ってデータのやり取りをしますが、データ型によって仕様