实例带你理解 JavaBean

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

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 技术具有卓越的通用性、高效性、平台移植性和安全性。

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

相关帖子

欢迎来到这里!

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

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

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

  • 其他回帖
  • visus

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

  • godboys

    JavaBean 中最好重写 toString 方法

  • nimingqi

    不知道怎么回事

  • 查看全部回帖
adlered
Java 开发业余爱好者,业余开源爱好者

推荐标签 标签

  • 小说

    小说是以刻画人物形象为中心,通过完整的故事情节和环境描写来反映社会生活的文学体裁。

    32 引用 • 108 回帖
  • Bootstrap

    Bootstrap 是 Twitter 推出的一个用于前端开发的开源工具包。它由 Twitter 的设计师 Mark Otto 和 Jacob Thornton 合作开发,是一个 CSS / HTML 框架。

    18 引用 • 33 回帖 • 645 关注
  • 996
    13 引用 • 200 回帖 • 3 关注
  • jsoup

    jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。

    6 引用 • 1 回帖 • 486 关注
  • VirtualBox

    VirtualBox 是一款开源虚拟机软件,最早由德国 Innotek 公司开发,由 Sun Microsystems 公司出品的软件,使用 Qt 编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。

    10 引用 • 2 回帖 • 16 关注
  • Swift

    Swift 是苹果于 2014 年 WWDC(苹果开发者大会)发布的开发语言,可与 Objective-C 共同运行于 Mac OS 和 iOS 平台,用于搭建基于苹果平台的应用程序。

    36 引用 • 37 回帖 • 546 关注
  • SOHO

    为成为自由职业者在家办公而努力吧!

    7 引用 • 55 回帖 • 2 关注
  • 单点登录

    单点登录(Single Sign On)是目前比较流行的企业业务整合的解决方案之一。SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

    9 引用 • 25 回帖 • 4 关注
  • Sublime

    Sublime Text 是一款可以用来写代码、写文章的文本编辑器。支持代码高亮、自动完成,还支持通过插件进行扩展。

    10 引用 • 5 回帖 • 2 关注
  • Ant-Design

    Ant Design 是服务于企业级产品的设计体系,基于确定和自然的设计价值观上的模块化解决方案,让设计者和开发者专注于更好的用户体验。

    17 引用 • 23 回帖 • 2 关注
  • Eclipse

    Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。

    76 引用 • 258 回帖 • 628 关注
  • Flume

    Flume 是一套分布式的、可靠的,可用于有效地收集、聚合和搬运大量日志数据的服务架构。

    9 引用 • 6 回帖 • 651 关注
  • Bug

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

    76 引用 • 1742 回帖 • 1 关注
  • Mac

    Mac 是苹果公司自 1984 年起以“Macintosh”开始开发的个人消费型计算机,如:iMac、Mac mini、Macbook Air、Macbook Pro、Macbook、Mac Pro 等计算机。

    168 引用 • 597 回帖
  • Java

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

    3200 引用 • 8215 回帖
  • 星云链

    星云链是一个开源公链,业内简单的将其称为区块链上的谷歌。其实它不仅仅是区块链搜索引擎,一个公链的所有功能,它基本都有,比如你可以用它来开发部署你的去中心化的 APP,你可以在上面编写智能合约,发送交易等等。3 分钟快速接入星云链 (NAS) 测试网

    3 引用 • 16 回帖 • 1 关注
  • CentOS

    CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同在于 CentOS 并不包含封闭源代码软件。

    239 引用 • 224 回帖 • 2 关注
  • Notion

    Notion - The all-in-one workspace for your notes, tasks, wikis, and databases.

    10 引用 • 77 回帖
  • Thymeleaf

    Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。类似 Velocity、 FreeMarker 等,它也可以轻易的与 Spring 等 Web 框架进行集成作为 Web 应用的模板引擎。与其它模板引擎相比,Thymeleaf 最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个 Web 应用。

    11 引用 • 19 回帖 • 387 关注
  • Redis

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

    286 引用 • 248 回帖
  • 创造

    你创造的作品可能会帮助到很多人,如果是开源项目的话就更赞了!

    184 引用 • 1015 回帖 • 2 关注
  • JWT

    JWT(JSON Web Token)是一种用于双方之间传递信息的简洁的、安全的表述性声明规范。JWT 作为一个开放的标准(RFC 7519),定义了一种简洁的,自包含的方法用于通信双方之间以 JSON 的形式安全的传递信息。

    20 引用 • 15 回帖 • 24 关注
  • OneNote
    1 引用 • 3 回帖 • 2 关注
  • App

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

    91 引用 • 384 回帖
  • 学习

    “梦想从学习开始,事业从实践起步” —— 习近平

    173 引用 • 518 回帖
  • Angular

    AngularAngularJS 的新版本。

    26 引用 • 66 回帖 • 548 关注
  • frp

    frp 是一个可用于内网穿透的高性能的反向代理应用,支持 TCP、UDP、 HTTP 和 HTTPS 协议。

    20 引用 • 7 回帖 • 4 关注