可能重复:
豆子有什么意义?
什么是javabean?它是干什么用的?什么是代码示例?我听说它用于与getter和setter方法有关吗?我对java bean是什么以及你甚至访问它的地方都很困惑.我用谷歌搜索,但找不到明确的答案.
Pra*_*mar 50
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;
}
}
Run Code Online (Sandbox Code Playgroud)
实现Serializable不是强制性的,但如果您希望在Java内存之外保留或传输Javabeans,例如在硬盘或网络中,则非常有用.
Hem*_*lia 22
JavaBeans是Java的可重用软件组件.实际上,它们是用符合特定约定的Java编程语言编写的类.它们用于将许多对象封装到单个对象(bean)中,以便它们可以作为单个bean对象而不是作为多个单独对象传递.JavaBean是一个可序列化的Java对象,具有0参数构造函数,并允许使用getter和setter方法访问属性.
好处
缺点
示例:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
参考http://en.wikipedia.org/wiki/JavaBeans
好吧,JavaBean API定义了许多与JavaBeans相关的约定.根据维基百科:
所需的约定如下:
- 该类必须具有公共默认构造函数(无参数).这允许在编辑和激活框架内轻松实例化.
- 根据标准命名约定,必须使用get,set,is(用于布尔属性而不是get)和其他方法(所谓的访问器方法和mutator方法)来访问类属性.这允许在框架内轻松自动检查和更新bean状态,其中许多包括用于各种类型属性的自定义编辑器.Setters必须只收到一个参数.
- 该类应该是可序列化的.它允许应用程序和框架以独立于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;
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,属性反映在getter和setter中.
HTH