Java Bean 和“普通类”在语法层面没有任何神秘差异——它们都是 `.java` 文件里写出来的类。

真正让一段代码被称为“Java Bean”的,是它遵守了一套约定(Convention),而不是继承了什么特殊父类或接口。下面把区别拆开说:

1. 必须有无参构造器

   普通类可以只有带参构造器;Java Bean 必须能让框架“`new Bean()`”出来。

2. 属性私有化 + getter/setter

   字段一律 `private`,通过 `getXxx()` / `setXxx()` 访问,且方法名符合“小写属性名首字母大写”规则。

   普通类可以把字段暴露成 `public`,也可以不提供 setter(只读属性)。

3. 实现 `Serializable`(可选但强烈建议)

   大部分需要持久化、网络传输的框架(EJB、Spring、分布式缓存等)都要求对象能序列化;普通类无所谓。

4. 没有业务逻辑

   Bean 只承载数据,不承载行为;普通类可以任意写算法、I/O、线程等逻辑。

5. 事件模型(只在 GUI 时代用到)

   早期 AWT/Swing 要求 Bean 提供 `addXxxListener` / `removeXxxListener`,现在服务端开发基本忽略这一条。

一句话总结:

“Java Bean” = 符合“无参构造 + 私有字段 + 公共 getter/setter + 可序列化”这套命名规范的纯数据载体;普通类想怎么写就怎么写,不必管这些规矩。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐