我認爲,「 Bean」是具備屬性和getter / setter的Java類。 據我瞭解,它等效於C結構。 真的嗎? java
另外,bean和常規類之間是否存在真正的語法差別? 有沒有特殊的定義或接口? 編程
基本上,爲何會有一個術語呢? 框架
還有Serializable
接口是什麼意思? 編輯器
要了解JavaBean,您須要注意如下幾點:JavaBean是一個概念性的東西,不能表明一類特定的東西 函數
JavaBean是一種開發工具,能夠在可重用的軟件組件中可視化操做 工具
JavaBean基於Sun JavaBeans規範,能夠是可重用的組件。 它的最大特色是可重用性。 開發工具
Java Bean用於更少的代碼和更多的工做方式... Java Bean在整個Java EE中都被用做運行時發現和訪問的通用合同。 例如,JavaServer Pages(JSP)使用Java Bean做爲頁面之間或Servlet和JSP之間的數據傳輸對象。 Java EE的JavaBeans激活框架使用Java Bean將對MIME數據類型的支持集成到Java EE中。 Java EE管理API使用JavaBeans做爲Java EE環境中要管理的資源檢測的基礎。 this
關於序列化: spa
在對象序列化中,對象能夠表示爲字節序列,其中包括對象的數據以及有關對象類型和存儲在對象中的數據類型的信息。 code
將序列化的對象寫入文件後,能夠從文件中讀取並反序列化它,即表示對象及其數據的類型信息和字節可用於在內存中從新建立對象。
JavaBeans的屬性
JavaBean是知足某些編程約定的Java對象:
JavaBean類必須實現Serializable
或Externalizable
JavaBean類必須具備no-arg構造函數
全部JavaBean屬性必須具備公共setter和getter方法
全部JavaBean實例變量都應該是私有的
JavaBeans的例子
@Entity public class Employee implements Serializable{ @Id private int id; private String name; private int salary; public Employee() {} public Employee(String name, int salary) { this.name = name; this.salary = salary; } public int getId() { return id; } public void setId( int id ) { this.id = id; } public String getName() { return name; } public void setName( String name ) { this.name = name; } public int getSalary() { return salary; } public void setSalary( int salary ) { this.salary = salary; } }
根據維基百科:
該類必須具備公共默認構造函數(不帶參數)。 這樣能夠在編輯和激活框架內輕鬆實例化。
根據標準命名約定,必須使用get,set,is(可用於布爾屬性而不是get)和其餘方法(所謂的訪問器方法和mutator方法)訪問類屬性。 這樣能夠輕鬆自動地檢查和更新框架中的Bean狀態,其中許多框架都包含針對各類類型的屬性的自定義編輯器。 設置器能夠有一個或多個參數。
該類應可序列化。 [這容許應用程序和框架以獨立於VM和平臺的方式可靠地保存,存儲和還原Bean的狀態。]
有關更多信息,請單擊此連接。
舉例說明。
1.導入java.io.Serializable
至於序列化,請參閱文檔 。
2.私人領域
字段應爲私有字段,以防止外部類輕鬆修改這些字段。 代替直接訪問那些字段,使用一般的getter / setter方法。
3.構造函數
一個沒有任何參數的公共構造函數。
4.吸氣器/吸氣器
用於訪問和修改私有字段的Getter和setter方法。
/** 1. import java.io.Serializable */ public class User implements java.io.Serializable { /** 2. private fields */ private int id; private String name; /** 3. Constructor */ public User() { } public User(int id, String name) { this.id = id; this.name = name; } /** 4. getter/setter */ // getter public int getId() { return id; } public String getName() { return name; } // setter public void setId(int id) { this.id = id; } public void setName(String name) { this.name = name; } }