什么是 Java Bean

Mohammad Irfan 2023年10月12日
  1. 在 Java 中创建 JavaBean
  2. 在 Java 中如何实现/访问 JavaBeans
  3. Java 中 JavaBeans 的 Setter 和 Getter
  4. JavaBean 的优点
什么是 Java Bean

本教程介绍了 Java 中的 bean 并列出了一些示例代码来理解该主题。

JavaBean 是将许多对象封装到单个对象(bean)中的类。它具有以下特性。

  1. 导可序列化的接口
  2. 私有字段
  3. 构造函数
  4. getter/setter

类的可序列化由实现 java.io.Serializable 接口的类启用。未实现此接口的类将不会对其任何状态进行序列化或反序列化。

字段应该是私有的,以防止外部类轻易修改这些字段。通常不直接访问这些字段,而是使用 getter/setter 方法。

它可能有零个或多个参数构造函数来创建一个对象。

它具有用于访问和修改私有字段的 getter 和 setter 方法。

这是 Java 中 JavaBean 的基本结构或草案。

// Implements Serializable interface
public class SimpleTesting implements Serializable {
  // private fields

  // no-args constructor

  // list of getters and setters
}

在 Java 中创建 JavaBean

在这里,我们创建了一个 Javabean 类 SimpleTesting,其中包含三个私有字段、一个默认构造函数和一个参数化构造函数以及用于设置和获取数据的 getter 和 setter。请参考下面的示例。

import java.io.Serializable;
public class SimpleTesting implements Serializable {
  private int id;
  private String name;
  private int salary;

  public SimpleTesting() {}

  public SimpleTesting(int id, String name, int salary) {
    this.id = id;
    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;
  }
}

在 Java 中如何实现/访问 JavaBeans

要实现 JavaBeans,我们可以创建该类的对象。在这里,我们将值传递给构造函数并使用 getter 访问值。请参考下面的示例。

public class Main {
  public static void main(String[] args) {
    SimpleTesting st = new SimpleTesting(1, "Rohan", 100000);
    System.out.println("id = " + st.getId());
    System.out.println("name = " + st.getName());
    System.out.println("salary = " + st.getSalary());
  }
}

输出:

id = 1
name = Rohan
salary = 100000

Java 中 JavaBeans 的 Setter 和 Getter

在这里,我们使用 setter 方法来设置值,然后使用 getter 方法来获取值。这就是 JavaBeans 的优势。请参考下面的示例。

public class Main {
  public static void main(String[] args) {
    SimpleTesting st = new SimpleTesting();
    st.setId(1);
    st.setName("Rohan");
    st.setSalary(100000);
    System.out.println("id = " + st.getId());
    System.out.println("name = " + st.getName());
    System.out.println("salary = " + st.getSalary());
  }
}

输出:

id = 1
name = Rohan
salary = 100000

JavaBean 的优点

Java Bean 在整个 Java EE 中用作运行时发现和访问的通用契约。例如,JavaServer Pages (JSP) 使用 Java Bean 作为页面之间或 servlet 和 JSP 之间的数据传输对象。