实例带你理解 JavaBean

本贴最后更新于 2214 天前,其中的信息可能已经斗转星移

v2c166dd0bb6dbe3f87a0b20cb3dabfdb8hd.jpg

在我理解看来,JavaBean 与上文讲的接口有着相似的地方:

  • 用于包装并传递一些特定的数据(如字符串、整数、类等等)

  • 用于实现方法的传递

  • ······

    在我们获取用户上传的的数据时,如果只是用一个个变量去接收的话,就会造成重复代码的书写,并且代码多且繁杂,如果想要在其他地方使用这个变量就会很不好调用;假设需要用户上传的数据较多,每一次调用时都需要进行大量重复代码的书写,极大地影响了我们开发的效率,如果我们有一个可以去接收这些数据的类或者容器就可以实现代码的“高内聚、低耦合”。

这个容器就被称为 JavaBean,JavaBean 里的属性全都使用 private 修饰可以保证只能通过 JavaBean 里的 getter 方法和 setter 方法去设置或者获得类里的属性,当然 settergetter 方法都是由 public 修饰,确保其他地方能正常使用这些属性

JavaBean 的设计规则:
JavaBean 是一个公共类
JavaBean 类具有一个公共无参的构造方法
JavaBean 所有的属性定义为私有
JavaBean 中,需要对每个属性都提供两个公共方法,set 方法和 get 方法
定义 JavaBean 的时候,通常放置在一个命名的包下。

举个栗子

public class UserBean { //定义UserBean的私有对象 name和age private String name; //用户名 private int age; //用户年龄 //以下都是JavaBean的set方法和get方法 public void setName(String name) { this.name = name; } public String getName() { return name; } public void setAge(int age) { this.age = age; } public int getAge() { return age; } }

这是一个简单的 JavaBean 用来存储用户数据,它内置的属性很简单,只有 nameage,也有关于属性的 set 方法和 get 方法

public static void main(String[] args) { UseUserBean useBean = new UseUserBean(); //实例化UseUserBean对象,方便调用run方法 UserBean user = new UserBean(); user.setName("zhangsan"); user.setAge(12); useBean.run(user); useBean.run2("zhangsan", 12); } //使用javabean的方式处理数据 public void run(UserBean user) { System.out.println("用户名:" + user.getName() + " 年龄: " + user.getAge()); } //使用普通的变量的方式处理数据 public void run2(String name, int age){ System.out.println("用户名:" + name + " 年龄: " + age); }

runrun2 的结果是一样的,都可以打印出用户的信息,但是当用户的其他数据比较多时,是不是方法里的参数就变得很多了,并且外部也不好调用。
如果我将用户的数据都封装到一个类里,再通过变量的传递,就可以将这个类里的其他数据流转到其他要使用这些属性的地方,将用户的数据封装到一个容器里,这种操作就降低了代码的耦合性。

使用 javabean 有很多好处,比如

  1. 提高代码的可复用性:对于通用的书屋处理逻辑,数据库操作都可以封装在 Javabean 里,通过调用 javabean 的属性和方法可快速进行程序设计
  2. 程序易于开发维护:实现逻辑的封装,使事物处理和显示互不干扰
  3. 支持分布式运用:多用 javabean,尽量减少 java 代码和 html 的混编
  4. 可以便捷地传递数据

MVC 里有 Mode 模型的概念,就是将数据封装到模型里,这和 JavaBean 的概念是一样的,就是构建好一个模型,然后照着样子将数据放到一个模子里,这就是实例化了一个对象。

总结

关于 JavaBean 的知识还有很多,这里只是简单地介绍 JavaBean,我们会经常在 JavaWeb 开发中用到它。

  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3195 引用 • 8215 回帖
  • 代码
    467 引用 • 586 回帖 • 9 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • visus

    你们真 low,别丢人了,hashMap 的 hashCode 重写过吗,又来装逼 🙏 🙏 🙏

  • gaoyangwolf via iPhone

    看起来很厉害的样子

  • visus

    我错了,话不能乱说,饭可以乱吃,抱歉

  • nimingqi

    不知道怎么回事

  • godboys

    JavaBean 中最好重写 toString 方法

adlered
Java 开发业余爱好者,业余开源爱好者

推荐标签 标签

  • OneDrive
    2 引用
  • Ngui

    Ngui 是一个 GUI 的排版显示引擎和跨平台的 GUI 应用程序开发框架,基于
    Node.js / OpenGL。目标是在此基础上开发 GUI 应用程序可拥有开发 WEB 应用般简单与速度同时兼顾 Native 应用程序的性能与体验。

    7 引用 • 9 回帖 • 400 关注
  • Lute

    Lute 是一款结构化的 Markdown 引擎,支持 Go 和 JavaScript。

    28 引用 • 197 回帖 • 29 关注
  • Jenkins

    Jenkins 是一套开源的持续集成工具。它提供了非常丰富的插件,让构建、部署、自动化集成项目变得简单易用。

    54 引用 • 37 回帖 • 1 关注
  • 链书

    链书(Chainbook)是 B3log 开源社区提供的区块链纸质书交易平台,通过 B3T 实现共享激励与价值链。可将你的闲置书籍上架到链书,我们共同构建这个全新的交易平台,让闲置书籍继续发挥它的价值。

    链书社

    链书目前已经下线,也许以后还有计划重制上线。

    14 引用 • 257 回帖
  • 百度

    百度(Nasdaq:BIDU)是全球最大的中文搜索引擎、最大的中文网站。2000 年 1 月由李彦宏创立于北京中关村,致力于向人们提供“简单,可依赖”的信息获取方式。“百度”二字源于中国宋朝词人辛弃疾的《青玉案·元夕》词句“众里寻他千百度”,象征着百度对中文信息检索技术的执著追求。

    63 引用 • 785 回帖 • 108 关注
  • CongSec

    本标签主要用于分享网络空间安全专业的学习笔记

    1 引用 • 1 回帖 • 26 关注
  • Redis

    Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。从 2010 年 3 月 15 日起,Redis 的开发工作由 VMware 主持。从 2013 年 5 月开始,Redis 的开发由 Pivotal 赞助。

    286 引用 • 248 回帖 • 11 关注
  • Follow
    4 引用 • 12 回帖 • 11 关注
  • Hexo

    Hexo 是一款快速、简洁且高效的博客框架,使用 Node.js 编写。

    22 引用 • 148 回帖 • 9 关注
  • Hibernate

    Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。

    39 引用 • 103 回帖 • 719 关注
  • App

    App(应用程序,Application 的缩写)一般指手机软件。

    91 引用 • 384 回帖 • 1 关注
  • 笔记

    好记性不如烂笔头。

    310 引用 • 794 回帖
  • Caddy

    Caddy 是一款默认自动启用 HTTPS 的 HTTP/2 Web 服务器。

    12 引用 • 54 回帖 • 164 关注
  • Bug

    Bug 本意是指臭虫、缺陷、损坏、犯贫、窃听器、小虫等。现在人们把在程序中一些缺陷或问题统称为 bug(漏洞)。

    76 引用 • 1742 回帖 • 1 关注
  • Excel
    31 引用 • 28 回帖
  • Android

    Android 是一种以 Linux 为基础的开放源码操作系统,主要使用于便携设备。2005 年由 Google 收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。

    335 引用 • 324 回帖
  • RIP

    愿逝者安息!

    8 引用 • 92 回帖 • 391 关注
  • Sym

    Sym 是一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)系统平台。

    下一代的社区系统,为未来而构建

    524 引用 • 4601 回帖 • 702 关注
  • Sphinx

    Sphinx 是一个基于 SQL 的全文检索引擎,可以结合 MySQL、PostgreSQL 做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。

    1 引用 • 218 关注
  • 大数据

    大数据(big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

    93 引用 • 113 回帖
  • Mobi.css

    Mobi.css is a lightweight, flexible CSS framework that focus on mobile.

    1 引用 • 6 回帖 • 757 关注
  • V2EX

    V2EX 是创意工作者们的社区。这里目前汇聚了超过 400,000 名主要来自互联网行业、游戏行业和媒体行业的创意工作者。V2EX 希望能够成为创意工作者们的生活和事业的一部分。

    16 引用 • 236 回帖 • 268 关注
  • 代码片段

    代码片段分为 CSS 与 JS 两种代码,添加在 [设置 - 外观 - 代码片段] 中,这些代码会在思源笔记加载时自动执行,用于改善笔记的样式或功能。

    用户在该标签下分享代码片段时需在帖子标题前添加 [css] [js] 用于区分代码片段类型。

    134 引用 • 904 回帖
  • jQuery

    jQuery 是一套跨浏览器的 JavaScript 库,强化 HTML 与 JavaScript 之间的操作。由 John Resig 在 2006 年 1 月的 BarCamp NYC 上释出第一个版本。全球约有 28% 的网站使用 jQuery,是非常受欢迎的 JavaScript 库。

    63 引用 • 134 回帖 • 736 关注
  • Access
    1 引用 • 3 回帖 • 2 关注
  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:SymSoloVditor思源笔记

    1063 引用 • 3455 回帖 • 163 关注