除了getter和setter之外,JavaBean还能有方法吗?

Che*_*149 6 java javabeans

根据我在互联网上找到的定义,JavaBean是一个满足以下条件的Java类:

  • 所有实例属性都是私有的
  • 所有实例属性都有公共getter和setter
  • 该类有一个无参数构造函数
  • 该类实现了Serializable接口

我想知道的是,如果我将方法添加到Javabean中,我们仍然可以将其称为Javabean吗?

例如,我们可以说下面的类是JavaBean吗?

public class Person implements Serializable {
    private String name;
    public Person(){}
    public String getName(){...}
    public void setName(String name){...}
    public void sayHello(){}
}
Run Code Online (Sandbox Code Playgroud)

das*_*ght 8

是的,Java Bean肯定有行为.没有其他方法的Java Bean类的适用性非常有限,因为它们封装了没有有用行为的数据.

Oracle 在他们的Java Bean教程中提到了这一点:

bean的方法就是它可以做的事情.任何不属于属性定义的公共方法都是bean方法.在NetBeans等构建器工具的上下文中使用bean时,可以将bean的方法用作应用程序的一部分.例如,您可以按下按钮来调用bean的一个方法.