Java オブジェクト指向とは何か?クラスの概念と代表的なクラスの説明、および簡単なプログラムの作成

プログラミング

オブジェクト指向というのは、プログラムで利用される機能をオブジェクト(物)として捉えて、各オブジェクトを組み合わせることによりシステムを完成させる概念です。 Javaに限らず、近年利用されるプログラミング言語の多くがオブジェクト指向を取り入れています。

例えば、「指定した人を走らせるプログラム」の場合、下記の図のように各オブジェクトを物、や部品のように考え、それらを組み合わせてプログラムを構築していくイメージです。

また、オブジェクト指向はクラスという概念について学ぶことが必須です。

本記事では、オブジェクト指向で必要になる代表的なクラスの紹介と、それらを使用した簡単なプログラムを作成してみたいと思います。

今回の記事はjavaの基本的なことを知っている人でオブジェクト指向について復習したい方、また一通り勉強したが忘れてしまった人向けの内容になっています。

クラスとは

クラスとは下記の画像のように、「太郎」や「走る」などのようにデータや処理をオブジェクトとしてもつ(定義する)クラスのことです。
これらのクラスをインスタンス化※させて使用します。
※インスタンス化とは、クラスを実体化させたものです。Serviceクラスの章で説明します。

例)

では次に、代表的なJavaのクラスについて紹介していきます。

Entityクラス

Entityクラスとは、データベースの1行1行を1インスタンスにしたもの。
クラスはただの設計図であり、その設計図から「もの」を作らなければ実際に使うことはできないです。
そのため、設計図の役割を持つクラスから、オブジェクトという実体、「インスタンス」を作る必要があります。
この章では、他のクラスファイルでデータを使えるようにする(インスタンス化する)下準備のためのEntityクラスについて説明します。

<Entityクラスの例>

Python

下記の図のように、データベースから取得したデータをEntityクラスに詰めることで、オブジェクトという実態「インスタンス化」させることができます。
(下記でいうとtarouさんやhanaさんがデータべースから引っ張られてぽんっと生まれるイメージ)
Entityクラスの作成はその下準備と考えてください。
※インスタンスについては「Serviceクラスとは」にて後述します。

これでEntityクラスの完成です。

次にEntityクラスのインスタンスを提供するServiceクラスについて説明していきます。

Serviceクラスとは

Serviceクラスとは、Entityクラスの中のインスタンスを提供するクラスのことです。
先ほどまでは下準備で、Serviceクラスでは実際にEntityクラスのデータをインスタンス化する(実際に使える状態にする)ためのクラスです。

このクラスでは、データベースの中の「tarou」さんや、「hana」さんなどの情報一覧を返すメソッドや、「挨拶をする」などといった機能などを実装していくことができます。

Serviceクラスで処理を実装していくためには、次に説明する「インターフェースというクラス」と「機能を実装するクラス」の2つのクラスを作る必要があります。

インターフェースとは

インターフェースとは機能の概要を示すだけのクラスと考えてください。
具体的にいうと、「挨拶する」や「メンバ一覧を取得する」などの機能を使うために必要になる概要だけを示したクラスのことです。

下記の図のように、Serviceクラスでは機能の概要を示すインターフェースクラスを実装(継承)して機能を使います。

Serviceクラス(インターフェースクラス)の例
MemberService.java

Python

Serviceクラス(インターフェースを実装したクラス)の例
「MemberServiceImpl.java

Python

これでServiceクラスの完成です。
あとは、このServiceクラスを実際に実行するクラス「Main」クラスを作成していきます。

Mainクラスとは

Mainクラスとは、javaプログラムを起動するためのクラス(起動時に最初に通るクラス)のことです。

Python

これでMainクラスの完成です。
プロジェクトファイルを右クリックしてjavaアプリケーションを起動して出力すると、結果は下記の通りになりました。

Good evening
1,tarou,tarou@example.com
2,hana,hana@example.com
3,kouki,kouki@example.com

まとめ

今回ご紹介したプログラムの構造は下記の図の通りになります。

本プログラムに使用したクラスファイルは下記の4種類です。
◆Mainクラス
 「Member.java」
◆Serviceクラス
 「MemberService.java」
 「MemberServieImpl.java」
◆Entityクラス
 「Member.java」

起動から処理実行までの流れは下記の通りです。
①Mainクラスでプログラムを起動する。
②Serviceクラスで機能の概要を示すクラスを実装(継承)する。
③Entityクラスへメンバのデータを見にいく。
④Serviceクラスへ必要なメンバデータを持ってくる。
⑤MainクラスでServiceクラスにあるメソッドを実行する。

コメント

タイトルとURLをコピーしました