可能性のある複製:
豆のポイントは何ですか?
Javabeanとは何ですか?それは何のために使われますか?そして、いくつかのコード例は何ですか?私はそれがゲッターとセッターメソッドに関係する何かに使用されていると聞きましたか?私はJava Beanが何であるか、そしてあなたがそれにアクセスする場所についても非常に混乱しています。
Java Beanは、通常のJavaクラスであり、パブリックgetterおよびsetterメソッドを持つプライベートプロパティがあります。
通常、Java Beanはヘルパークラスとして使用されます。
例-
public class User implements Java.io.Serializable {
private String name;
private Integer age;
public String getName(){
return this.name;
}
public void setName(String name){
this.name = name;
}
public Integer getAge(){
return this.age;
}
public void setAge(Integer age){
this.age = age;
}
}
Serializable
の実装は必須ではありませんが、JavabeansをJavaのメモリの外に永続化または転送したい場合、非常に便利です。ハードディスク内またはネットワーク経由。
JavaBeansは、Java用の再利用可能なソフトウェアコンポーネントです。実際には、特定の規約に準拠したJavaプログラミング言語で記述されたクラスです。多くのオブジェクトを単一のオブジェクト(Bean)にカプセル化するために使用されます。複数の個別のオブジェクトとしてではなく、単一のBeanオブジェクト。JavaBeanはJavaオブジェクトであり、シリアル化可能で、引数が0のコンストラクタを持ち、ゲッターメソッドとセッターメソッドを使用してプロパティにアクセスできます。
長所
短所
例:
package beans;
/**
* Class <code>PersonBean</code>.
*/
public class PersonBean implements Java.io.Serializable {
private String name;
private boolean deceased;
/** No-arg constructor (takes no arguments). */
public PersonBean() {
}
/**
* Property <code>name</code> (note capitalization) readable/writable.
*/
public String getName() {
return this.name;
}
/**
* Setter for property <code>name</code>.
* @param name
*/
public void setName(final String name) {
this.name = name;
}
/**
* Getter for property "deceased"
* Different syntax for a boolean field (is vs. get)
*/
public boolean isDeceased() {
return this.deceased;
}
/**
* Setter for property <code>deceased</code>.
* @param deceased
*/
public void setDeceased(final boolean deceased) {
this.deceased = deceased;
}
}
さて、JavaBean APIはJavaBeansに関する多くの規約を定義しています。ウィキペディアによると:
必要な規則は次のとおりです。
- クラスには、パブリックのデフォルトコンストラクター(引数なし)が必要です。これにより、編集およびアクティベーションフレームワーク内で簡単にインスタンス化できます。
- クラスプロパティは、標準の命名規則に従って、get、set、is(getの代わりにbooleanプロパティに使用)およびその他のメソッド(いわゆるアクセサメソッドおよびミューテータメソッド)を使用してアクセスできる必要があります。これにより、フレームワーク内のBean状態の簡単な自動検査と更新が可能になり、その多くにはさまざまなタイプのプロパティ用のカスタムエディターが含まれています。セッターは1つの引数のみを受け取る必要があります。
- クラスはシリアル化可能でなければなりません。これにより、アプリケーションとフレームワークは、VMおよびプラットフォームに依存しない方法でBeanの状態を確実に保存、保存、および復元できます。
多くの場合、これらは、使用されるデータのモデル化に使用できるため、アプリケーションで見つけることができる最も一般的なタイプのクラスです。このようなBeanの例を以下に示します。
public class Person implements Serializable
{
private String name;
private boolean alive;
public Person()
{
// constructor logic...
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public boolean isAlive()
{
return alive;
}
public void setAlive(boolean alive)
{
this.alive = alive;
}
}
ご覧のとおり、プロパティはゲッターとセッターに反映されています。
HTH
Java BeansとNOT EJB Beansについて話している場合、ここに説明があります...
1。 JavaBeanには引数をとらないコンストラクタがあります。
2。 JavaBeanには一連のプロパティがあります。
。 JavaBeanには、基礎となるプロパティへのアクセスを許可するアクセサ(getXxx、またはブールプロパティの場合はisXxx)メソッドとミューテータメソッド(setXxx)があります。
番目のポイントは、Javaプライベートインスタンス変数とパブリックゲッター、セッターを含むクラス
例えば:
import Java.util.Date;
public class User {
private Date loginDate;
private String name;
private String password;
public User() { }
public Date getLoginDate() {
return loginDate;
}
public String getName() {
return name;
}
public String getPassword() {
return password;
}
public void setLoginDate(Date loginDate) {
this.loginDate = loginDate;
}
public void setName(String name) {
this.name = name;
}
public void setPassword(String password) {
this.password = password;
}
public void delete() {
// code to delete user from database
}
public void update() {
// code to update user in database
}
public static User getUser(String name) {
// code returning a new User object
// populated from the database
}
}