我认为,“ 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; } }