JAVA bean 和普通类区别
·
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 + 可序列化”这套命名规范的纯数据载体;普通类想怎么写就怎么写,不必管这些规矩。
更多推荐


所有评论(0)