Javabeansとは?Javabeansのルールとサンプルプログラム

- システム
エンジニア - Javabeansとはどのようなものなのでしょうか。
- プロジェクト
マネージャー - 再利用可能なプログラムを作るための仕様および、その仕様に従って作られたクラスのことです。
Javabeansとは?
Javabeansとは、再利用可能なプログラムを作るための仕様および、その仕様に従って作られたクラスのことです。簡単にいうとJavabeansは、データを入れておく箱のようなものです。入れ物のイメージからBean(=豆)という名前がつけられています。
例えば、あなたが本屋さんを経営している場合、新しい書籍を仕入れると、本のタイトル、著者、出版社、価格などの情報をコンピュータに入力することになるでしょう。入力データの種類を決めたり入力データを保存しておくのがJavabeansの役割です。
Javabeansのルールとは?
Javabeansにはルールが決められており、このルールに従って作成する必要があります。Javabeansのルールは次の通りです。
1.クラスはpublicを指定する
2.プロパティはprivateを指定する
3.引数なしのコンストラクタを定義する
4.プロパティへのgetterとsetterを定義する
5.java.io.Serializableを実装する
6.カプセル化する
7.クラス名の最後はBeanにする
Javabeansサンプルプログラム
以下はJavabeansのクラスのサンプルプログラムです。ここでは簡単に、本の「タイトル」と「価格」を書き込み/読み出しするクラス「BookBean」を作成します。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
/* BookBean.java */
import java.io.Serializable;
public class BookBean implements Serializable { // クラス指定 --- (A)
private static final long serialVersionUID = 1L;
// プロパティ --- (B)
private String tytle; // 本のタイトル
private int price; // 本の価格
// コンストラクタ --- (C)
public BookBean() {}
// プロパティ tytleのsetter / getter --- (D)
public void setTytle(String tytle) {this.tytle= tytle;}
public String getTytle() {return this.tytle;}
// プロパティ priceのsetter / getter --- (E)
public void setPrice(int price) {this.price = price;}
public int getPrice() {return this.price;}
}
|
サンプルプログラムの解説
サンプルプログラムについて解説します。
(A)BookBeanクラスをpublicで指定します。クラス名の最後はBeanにします。
(B)保存しておくデータはプロパティとしてprivateで指定します。privateにすることで外部からアクセスできない仕組みになり、これをカプセル化と呼んでいます。
(C)引数なしのコンストラクタをpublicで指定します。
(D)(E)プロパティ tytle、priceへのsetter/getterを作成します。
Javabeansへのデータ設定方法
Javabeansはカプセル化されているので直接プロパティにデータを書き込んだり、読み出したりすることはできません。書き込んだり読み出したりする場合は、setter/getterを使用します。以下の手順となります。
1.インスタンスを生成する
2.setterを使ってデータを書き込む
3.getterを使ってデータを読み出す
javabeansを使ったサンプルプログラム
サンプルプログラムで作成した「BookBean」を実際に使ってみます。下記のプログラムでは、本の「タイトル」と「価格」を書き込んだ後、それを読み出して画面に表示しています。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
/* sampleJava.java */
public class sampleJava {
public static void main(String[] args) {
// インスタンス化 --- (A)
BookBean bookBean = new BookBean();
// setterでプロパティに書き込み --- (B)
bookBean.setTytle("吾輩は猫である");
bookBean.setPrice(980);
// getterで読みだして画面に表示 --- (C)
System.out.println("タイトル「" + bookBean.getTytle() "」、価格「" + bookBean.getPrice() + "」円");
}
}
|
サンプルプログラムの解説
サンプルプログラムについて解説します。
(A) BookBeanクラスをインスタンス化します。インスタンス化は実体化とも呼ばれ、パソコンのメモリ上にBookBeanクラスの領域を確保します。
(B)setterを使ってプロパティに本の「タイトル」と「価格」を書き込みます。
(C)getterを使って書き込んだ「タイトル」と「価格」を読み出し、画面に表示します。
サンプルプログラムを実行すると、以下のような表示が画面に出ます。
”タイトル「吾輩は猫である」、価格「980」円”
Javabeansの注意点
Javabeansには注意点があります。Javabeansはデータを一つしか保存できません。例えば、次のプログラムのように、2つのタイトルを続けて書き込んだとします。
1
2
3
|
bookBean.setTytle("吾輩は猫である");
bookBean.setTytle("蜘蛛の糸");
system.out.println("タイトル「" + bookBean.getTytle() + "」");
|
この場合、本のタイトルとしては、「吾輩は猫である」は消えてしまい、「蜘蛛の糸」だけが保存され、以下のような表示が画面に出ます。
“タイトル「蜘蛛の糸」”
2つの情報を保持したい場合
2つの情報を保持したい場合は、次のようにインスタンスを2つ準備する必要があります。こうすることで領域が2つ確保されるので、両方のデータを保存できます。
1
2
3
4
5
6
7
|
BookBean bookBean1 = new BookBean();
BookBean bookBean2 = new BookBean();
bookBean1.setTytle("吾輩は猫である");
bookBean2.setTytle("蜘蛛の糸");
system.out.println("1. タイトル「" + bookBean1.getTytle() + "」")
system.out.println("2. タイトル「" + bookBean2.getTytle() + "」")
|
このプログラムを実行すると、以下のような表示が画面に出ます。
“1. タイトル「吾輩は猫である」”
“2. タイトル「蜘蛛の糸」”
JSPからのJavabeans起動方法
Javabeansの使い方として、JSPからJavabeansを呼び出すこともできます。JSPとはJavaServerPageの略で、サーバ上で動作するJavaプログラムのことです。
JSPのプログラミングは、HTMLコードの中にJavaコードを記述していきます。JSPではJavabeansを呼び出すためのHTMLアクションタグが用意されていて、このアクションタグを使用することで、Javabeansで定義したクラスのプロパティを操作することができます。
Javabeansを呼び出すアクションタグ
JSPで用意されているJavabeansを呼び出すためのアクションタグは次のものがあります。
・<jsp:useBean>:Javabeansの使用を定義します
・<jsp:setProperty>:Javabeansのプロパティにデータを書き込みます
・<jsp:getProperty>:Javabeansのプロパティからデータを読み出します
以降にそれぞれのアクションタグについて説明します。
JSPでJavabeansクラスをインスタンス化する場合に使用します。インスタンス化は実体化とも呼ばれ、パソコンのメモリ上に記憶領域(=実体)を確保することです。構文は次の通りです。
<jsp:useBean id=”オブジェクト名” class=”クラス名” scope=”スコープの範囲” />
・id=”オブジェクト名” : インスタンス化するオブジェクト名を指定
・class=”クラス名” : Javabeansクラスの完全修飾名を指定
・scope=”スコープの範囲” : 使用可能な範囲を指定
Javabeansクラスのプロパティにデータを書き込む場合に使用します。構文は次の通りです。
<jsp:setProperty name=”オブジェクト名” property=”プロパティ名” [value=”プロパティ値”|param=”パラメータ名”] />
・name=”オブジェクト名” : 対象のオブジェクト名を指定
・property=”プロパティ名” : データを書き込むプロパティ名を指定
・value=”プロパティ値” : プロパティに書き込むデータを指定
・param=”パラメータ名” : リクエストパラメータからデータを取得して設定する場合にリクエストパラメータ名を指定
Javabeansクラスのプロパティからデータを読み出す場合に使用します。構文は次の通りです。
<jsp:getProperty name=”オブジェクト名” property=”プロパティ名” />
・name=”オブジェクト名” : 対象のオブジェクト名を指定
・property=”プロパティ名” :データを読み出すプロパティ名を指定
読み出したデータはWebページに文字列として表示されます。
その他のアクションタグ
JSPではJavabeansを呼び出す以外のアクションタグも用意されています。次のものがあります。
・<jsp:fallback>:Javaプラグイン起動不可時のコンテンツを指定します
・<jsp:forward>:他のHTMLページへフォワードします
・<jsp:include>:指定ページを実行します
・<jsp:param>:フォワードする際のパラメータを指定します
・<jsp:params>:Javaプラグインにパラメータを引き渡します
・<jsp:plugin>:Javaプラグインを実行するHTMLを生成します
- システム
エンジニア - Javabeansについてよく理解できました。
- プロジェクト
マネージャー - Javabeans作成のルールなどを理解し、実際にソースコードで指定してみましょう。
まとめ
今回はJavabeansについて説明しました。Javabeansにはいくつかのルールがありましたが、その中でも重要なのはデータを書き込み、読み出しするsetter/getterの定義です。カプセル化を実現する仕組みなので、理解しておいてください。
FEnetJava・Javaコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。

-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。


Java新着案件New Job
-
官公庁向け業務システム開発/Java/東京都千代田区/【WEB面談可】/テレワーク
月給39万~44万円東京都千代田区(永田町駅) -
販売管理システム開発/Java/東京都中央区/【WEB面談可】/テレワーク
月給49万~55万円東京都中央区(京橋駅) -
生命保険会社向けシステム開発/Java/東京都千代田区/【WEB面談可】/テレワーク
月給42万~48万円東京都千代田区(大手町駅) -
社会保険システムのパッケージ開発/Java/東京都港区/【WEB面談可】/テレワーク
月給42万~48万円東京都港区(新橋駅) -
金融機関向けシステム更改/Java/東京都江東区/【WEB面談可】/テレワーク
月給46万~51万円東京都江東区(豊洲駅) -
大手通信会社者向けWebシステム改修/Java/東京都港区/【WEB面談可】/テレワーク
月給42万~48万円東京都港区(品川駅)