JavaBean 介绍:
JavaBean 是一种用于创建可重用组件的约定,它通常用于在不同的 Java 应用程序和框架之间传输和保存数据。
在用户界面中,JavaBean 通常表示用于显示或输入数据的表单控件。在企业应用程序中,JavaBean 通常表示业务对象或数据处理对象,它们封装着应用中的数据和业务逻辑。
JavaBean将一些数据封装在一起,以提供更加简便的访问,其主要目的是将业务应用程序的业务逻辑与视图界面分离,使它们彼此独立并减少它们之间的依赖性,即使更改业务逻辑也不会影响用户界面,例如我们学过的MVC模式就是一个最典型的例子,其中Model代表数据和业务逻辑,View代表用户界面,Controller负责协调这两个组件之间的交互并控制应用程序的流程,MVC 模式可以将业务逻辑和视图分开,从而可以更简单地进行开发,提高代码的可重用性,并且使应用程序更易于维护。
什么样的Java类可被称之为JavaBean?
JavaBean其实是一个 Java 类
,它具有可重用性和可扩展性的特点,满足以下条件的Java类才能被称为JavaBean :
1. 公共的无参构造函数:在Javabean中,我们既可以定义无参构造函数,也可以定义其他的构造函数,但必须满足至少含有无参构造函数。 2. 私有的成员变量和公共的方法:JavaBean 中的实例变量都必须定义为私有的,而这些实例变量的修改和访问都是通过公共的setter和getter方法,以便外部代码可以通过这些方法访问和修改 JavaBean 的状态。 规定getter 和 setter 方法命名规则要么是 get/set+属性名首字母大写格式,要么是 is/set+布尔型属性名。 3. 序列化支持:JavaBean 支持序列化,因此它必须实现Serializable接口,那我们可以将 JavaBean 对象序列化为字节流,以便发送到其他系统或写入文件系统
JavaBean的命名规范:
Bean 类的命名规范是非常重要的,因为遵循 Bean 类的命名规范,可以使代码更加易于理解和维护。
在 Java 中,Bean 类的命名规范如下:
类名称:
类名必须是一个名词
且以大写字母开头,类名必须使用驼峰式命名法。例如,Person、Student 等。
属性名称:
1:属性名称必须以小写字母开头,且必须使用驼峰式命名法,例如,firstName、lastName等。
2:属性名应该具有描述性,能够清晰地表达属性的含义。例如:age、gender、email。
3:属性名不应该使用缩写,除非是广泛使用的缩写,例如:URL、HTML。
4:属性名不应该使用 Java 关键字或保留字,例如:class、interface、public,private…
5:属性名不应该使用特殊字符,例如:$、#、@。
6:属性名应该避免使用数字作为开头,例如:2ndName。
7:属性名应该避免使用单个字母作为名称,例如:x、y、z。
8:属性名应该避免使用过长的名称,例如:thisIsAVeryLongPropertyName。
getter 和 setter 方法名称:
getter 和 setter 方法名称必须是属性名称的"get"和"set"前缀
,其中 get 和 set 不区分大小写,并且属性名称的首字母需要大写。例如,getFirstName、setAge 等。
Boolean 类型属性的 getter 方法名称:
如果属性是 Boolean 类型的,则 getter 名称应该是 “is” + 属性名,例如,isMarried()。
构造方法名称:
Bean 类应该提供一个无参的构造方法,构造方法名称应该与类名相同。
下述为一个规范的JavaBean的创建实例:
import java.io.Serializable; public class EmployeeBean implements Serializable {//实现序列化接口 //私有的属性 private String firstName; private String lastName; private int age; //公共的无参构造 public EmployeeBean() { } //公共的setter和getter方法 public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }