39日目(2025.03.10) JavaBeans / Bean
今回は、「JavaBeans」です!!
【勉強動画】
せかチャン様
「JavaBeansのルールとBeanやプロパティを理解しよう【JavaWeb入門講座12】JavaBeans」
【JavaBeans】
部品化したクラスを作る時のルールをJavaBeansという。
【Bean】
JavaBeansのルールに従って作られたクラスをBeanという。
【JavaBeansの設計ルール】
①クラスをpublic指定とする
②引数なしのコンストラクタを定義する
③java.io.Serializableインターフェースを実装する
④そのクラスをパッケージ化する
⑤setter / getterメソッドを定義する
⇓
必須のルールと、必要な時(状況に応じて)使うルールに分かれる
【5つのルールの使い方】

【setter / getterメソッドを定義する時の注意点】
★setterメソッドの名前 → set + メンバ変数名
★getterメソッドの名前 → get + メンバ変数名
※メンバ変数名の1文字目は大文字にすること
【Serializableインターフェースについて】
通常、インターフェースを使う時は、そのインターフェースで定義されているメソッドをクラス内で全て実装しなければいけない。
⇓
Serializableインターフェースには1つもメソッドが定義されていないので、クラス内で実装する必要がない
⇓
なんのためにSerializableインターフェースを入れるのか?
⇓
そのクラスがシリアライズ(直列化)可能であることを示すため
【シリアライズ(直列化)とは】
データをビット列(0と1)で表現すること。
クラスの情報を0と1の直列で表すことで、そのクラスで作ったインスタンスをファイルに保存できたり、ネットワーク経由で別のコンピュータに送ったりとかができる
⇓
どんな時に必要??
⇓
複雑な処理をするBeanクラスを書いた時
⇓
コンパイル時にSrializableに関するエラーが出た
⇓
エラーメッセージを踏まえてプログラムを修正していく
ちょっと、まだ理解ができない点があったので、自分でも調べてみました!!
上記と内容が被る点もありますが、自分で調べた内容をまとめます!!
Serializable → オブジェクトを運びやすい形(バイトストリーム)に変換するために用いる
⇓
データの持続性や通信を可能にする
★バイトストリームから、Javaオブジェクトの状態を復元することを「デシリアライズ」といいう
★Serializableインターフェースを実装したクラスのオブジェクトは、
ObjectOutStream
を使ってファイルに書き込んだり、
Socket
を使ってネットワーク越しに送ったりすることができる。
受信側では、
ObjectInputStream
を使ってオブジェクトを復元することができる。
【なぜBeanクラスで使うのか】
JavaBeansは、データをカプセル化するために利用するクラス
⇓
JavaEEやスプリングなどのフレームワークで使われる
⇓
これらのフレームワークでは特定の操作を行うことが多い
⇓
オブジェクトのシリアライズが必要
⇓
BeanクラスにSerializableインターフェースを実装することで、
「このクラスのオブジェクトはシリアライズ可能です」と宣言することができる。
まだよく分からない感じなのですが、大規模なアプリケーションで実際にSerializableを実装しておくと、あとから「ああ、こういう時に必要だったんだ」と納得できるらしいです。
ちなみに、どういう場面で使われるか気になったのですが、
・ゲームの進行状況
・ユーザーの設定
などで活躍するみたいです。
それでは、菅原先生の動画に戻ります!!
【コーディング】
Beanクラスでは、ルールで決められたメソッド(setter / getter)以外でも独自でメソッドを作ることができる!!
⇓
public String getJpnAge(){
String jpnAge;
if(age.equals(“child”)){
jpnAge = “18歳未満”;
}else{
jpnAge = “18歳以上”;
}
return jpnAge;
public String getStrLangs(){
String strLangs = “”;
for(int i = 0; i < langs.length; i++){
strLangs = strLangs + langs[i] + ” “;
}
return strLangs;
みたいな感じです!!
これまでのことを踏まえて、菅原先生のコードを真似してコーディング!!


今回、学ばせていただいたJavaBeansは、個人的にはすごく面白いと思いました!!
ファイルに保存とかネットワークを通じて転送できるようにといった点がすごく実務に近づいた知識という感じがしたわけです。
早く使いこなせるようになりたいです!!
というわけで、
引き続き楽しんでいこう!!!