每日一道面试题之介绍一下Java Bean并谈谈它的命名规范~

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 等。

属性名称:

属性名称必须以小写字母开头且必须使用驼峰式命名法,例如,firstName、lastName等。

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;
    }

}

你可能感兴趣的:(Java面试题,java,面试,开发语言,职场和发展,后端)