基本情報技術者 2010年 秋期 午前(科目A) 問08
問題文
Javaのプログラムにおいて、よく使われる機能などを部品化し、再利用できるようにコンポーネント化するための仕様はどれか。
選択肢
ア:JavaBeans(正解)
イ:JavaScript
ウ:Javaアプリケーション
エ:Javaアプレット
Javaのコンポーネント化仕様はどれか【午前2 解説】
要点まとめ
- 結論:ア JavaBeans がコンポーネント化と再利用のための仕様であり、プロパティやイベントで部品化を実現します。
- 根拠:JavaBeans は getter/setter 名称規約、イベントリスナ、シリアライズ対応、インスペクションAPIによる再利用設計を定義しています。
- 差がつくポイント:アプレットやアプリケーションは実行形態の分類、JavaScriptは別言語であり「コンポーネント仕様」としての定義がない点を区別してください。
正解の理由
JavaBeans は「再利用可能なソフトウェア部品(コンポーネント)」を作るために設計された Java の仕様です。クラスに対してプロパティ(getter/setter)、イベント(add/remove リスナ)、既定のコンストラクタ、シリアライズ可能であることなどの規約を定め、開発ツールがリフレクション(Introspector)で情報を取得してGUIビルダやアセンブリツールで組み合わせられるようにします。これにより部品化と再利用が体系的に可能になります。
よくある誤解
- JavaBeans は GUI コンポーネントだけを指すと誤解しやすいが、実際は汎用の再利用部品仕様で GUI に限定されません。
- Javaアプレットや Java アプリケーションと混同しがちですが、これらは「実行形態」でありコンポーネント仕様ではありません。
- JavaScript を JavaBeans と混同する誤り。言語や用途が異なり、仕様の目的も全く違います。
解法ステップ
- 問題文のキーワード「部品化」「再利用」「コンポーネント化」「仕様」を確認する。
- 各選択肢が「仕様/言語/実行形態」のどれに当たるかを分類する。
- JavaBeans はコンポーネント仕様であることを思い出し、他は該当しないと判断する。
- 正答はア(JavaBeans)と確定する。
選択肢別の誤答解説
- ア: JavaBeans — 正解。再利用可能なコンポーネント仕様として、プロパティ、イベント、永続化の規約を定めます。
- イ: JavaScript — 誤り。クライアントサイドやサーバーサイドで使われるスクリプト言語であり、JavaBeans のような Java ベースの部品仕様ではありません。
- ウ: Javaアプリケーション — 誤り。単に Java で書かれた独立実行プログラムを指し、「コンポーネント仕様」ではありません。
- エ: Javaアプレット — 誤り。ブラウザ内で動く小さなプログラム(かつ既に廃れた実行形態)で、部品化仕様そのものではありません。
補足コラム
JavaBeans は歴史的に GUI ビルダと連携して可視的にコンポーネントを組み立てるために重宝されました。現在は、Spring の「Bean」や POJO の普及、EJB や OSGi など他のコンポーネント技術との混同もありますが、JavaBeans のコア概念(プロパティの命名規約、シリアライズ、イベントパターン)は今でも多くのフレームワークの基礎に残っています。
サンプル(簡単な JavaBean)
public class Person implements java.io.Serializable {
private String name;
public Person() {} // デフォルトコンストラクタ
public String getName() { return name; } // プロパティの getter
public void setName(String name) { this.name = name; } // setter
// イベントやその他のメソッドを追加可能
}
FAQ
Q: JavaBeans と EJB(Enterprise JavaBeans)は同じですか?
A: 異なります。JavaBeans は再利用部品のシンプルな仕様、EJB は分散トランザクションやコンテナ管理を伴うサーバーサイドコンポーネント技術です。
A: 異なります。JavaBeans は再利用部品のシンプルな仕様、EJB は分散トランザクションやコンテナ管理を伴うサーバーサイドコンポーネント技術です。
Q: JavaBeans に必須の条件は何ですか?
A: 一般にデフォルトコンストラクタ、プロパティの getter/setter 命名規約、シリアライズ可能であることが期待されます。必要に応じてイベントサポートを実装します。
A: 一般にデフォルトコンストラクタ、プロパティの getter/setter 命名規約、シリアライズ可能であることが期待されます。必要に応じてイベントサポートを実装します。
Q: アプレットは今でも使われますか?
A: ほとんど廃止されています。セキュリティやブラウザの非対応により現代の開発では使われません。
A: ほとんど廃止されています。セキュリティやブラウザの非対応により現代の開発では使われません。
関連キーワード: JavaBeans、コンポーネント、再利用、プロパティ、イベント、シリアライズ、リフレクション、Introspector、POJO、Spring

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

