// Java program to illustrate JavaBeans
class Bean
{
// private field property
private Integer property;
Bean()
{
// No-arg constructor
}
// setter method for property
public void setProperty(Integer property)
{
if (property == 0)
{
// if property is 0 return
return;
}
this.property=property;
}
// getter method for property
public int getProperty()
{
if (property == 0)
{
// if property is 0 return null
return null;
}
return property;
}
}
// Class to test above bean
public class GFG
{
public static void main(String[] args)
{
Bean bean = new Bean();
bean.setProperty(0);
System.out.println("After setting to 0: " +
bean.getProperty());
bean.setProperty(5);
System.out.println("After setting to valid" +
" value: " + bean.getProperty());
}
}
结果:
After setting to 0: null
After setting to valid value: 5
POJO
POJO 代表普通旧 Java 对象。它是一个普通的 Java 对象,不受 Java 语言规范未强制执行的任何特殊限制的约束,并且不需要类路径。POJO 用于增加程序的可读性和可重用性。POJO 获得了最多的认可,因为它们易于编写且易于理解。它们是由 Sun Microsystems 在 EJB 3.0 中引入的。
POJO 不得包含以下内容:
扩展预先指定的类,例如:
public class GFG extends javax.servlet.http.HttpServlet {...}
不是 POJO 类。实现预先指定的接口,例如
public class Bar implements javax.ejb.EntityBean {...}
不是 POJO 类。预先指定的注释,例如
@javax.persistence.Entity public class Baz {...}
不是 POJO 类。POJO 基本上定义了一个实体。如果你想在你的程序中创建一个员工类,那么你可以像这样创建一个 POJO:
上面的例子是一个定义良好的 POJO 类的例子。如您所见,字段的访问修饰符没有限制。它们可以是私有的、默认的、受保护的或公共的。您也不需要在其中包含任何构造函数。
POJO是一个封装业务逻辑的对象。下图显示了 POJO 类的一个实际示例。控制器与您的业务逻辑交互,而后者又与 POJO 交互以访问数据库。在此示例中,数据库实体由 POJO 表示。此 POJO 具有与数据库实体相同的成员。
豆子
豆类是特殊类型的 POJOS。POJO 有一些限制,因此它们可以是 Bean。
根据字段的名称,Getter 和 Setter 有一些特殊的名称。例如,如果字段名称是 someProperty,那么它的 getter 最好是:
并且设置器将被调用:
getter 和 setter 的可见性通常是公开的。Getter 和 setter 对字段提供了完整的限制。
如果您将年龄可见性设置为公开,则任何对象都可以使用它。假设您希望年龄不为 0。在这种情况下,您无法控制。任何对象都可以将其设置为 0。但是通过使用 setter 方法,您可以进行控制。你可以在你的 setter 方法中有一个条件。同样,对于 getter 方法,如果您希望年龄为 0 则返回 null,您可以使用 getter 方法实现此目的,如下例所示:
结果:
结论
POJO 和 Beans 类用于定义 Java 对象以增加它们的可读性和可重用性。POJO 没有其他限制,而 Bean 是特殊的 POJO,有一些限制。
资料来源:POJO vs Java Beans(见最后一个有趣的比较表)。
唯一显着的区别是 Java Bean 可以被序列化(尽管它不在规范中),而 POJO 只能从 Object 继承。
POJO:
豆(JavaBean):
例子:
我建议您查看此文档以获取更多信息:“Difference Java Bean vs POJO” 和JavaBeans规范。
POJO定义(维基百科):
JavaBean定义(维基百科):
Java 中的 bean 在JavaBeans 规范中定义:
翻译成西班牙语:
为 bean 定义了更多元素,例如属性和方法的命名法、对属性的访问方法、对事件的支持等等。
POJO 代表普通旧 Java 对象。这是指具有私有或受保护属性的类,并且仅提供受保护或公共 getter 和 setter 方法来访问属性。类似于定义实体时。POJO 是 JavaBean,而 JavaBean 不一定是 POJO。