A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© SoraGinko 初级黑马   /  2018-8-15 21:53  /  1232 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

JavaBean的概述
1.我们这些所谓的标准的类他们有一个专业的名称,javaBean,下面我们来分析一下Javabean的作用,javabean中会有一些成员变量成员变量用于存储数据。所以javabean的主要作用就是用于封装数据,javabean也是一种规范我们后期的学习以及工作中会经常的使用到javabean,所以这个类我们不能随便的写,我们需要按照他的规范进行书写,下面我们来说下javabean的规范,javabean他就是一个类,由于javabean用于封装数据,所封装的数据需要可以访问,如果这个类想让任何的类都访问到,所以他所用的权限修饰符只能是public。
2.一个类本身并无法直接存储数据,如果我们想存储数据还需要有成员变量,所以javabean提供私有修饰的成员变量,(提供私有修饰的成员变量原因主要是为了程序的安全性,如果你可以直接访问,那你给我一些不合法的数据,我也无法控制,所以我们的成员变量使用私有修饰)。
3.变量已经私有了,那其他类就无法访问了,所以我们还要为成员变量提供公共的文访方式也就是get和sat方法。
4.作为规范,javabea还需要有构造方法,构造方法提供无参构造即可,有参构造我们可以选择性的进行提供,提供有参构造可以方便我们对成员变量的初始化,所以没有也是可以的。
5.最后还有一点,javabean还需要实现一个接口,这个接口叫序列化接口,实现序列化接口类的对象,可以被持久化,或者说可以被写到文件中,javabean作为一种规范被广泛使用,我们的一些javabean的对象是有可能被写到文件中的,所以作为规范,他要求我们实现这个接口。
1 Javabean用公共来修饰,2 提供私有修饰的成员变量,3 为成员变量提供公共的访问方式get和set方法,4 提供公共的有参和无参构造方法,5 实现序列化接口。
Beanutils的概述
刚刚我介绍了javabean,但在实践中我们发现当javabean的成员变量数量比较多的时候,这个赋值会变的非常繁琐,所以接下来我来说下beanutils,这个是一款工具也可以说是一个组件,utils就是工具的意思,beanutils就是为我们的javabean服务的,beanutils来自一个非常出名的开源组织Apache(阿帕奇),这个名字我们以后还会反复的见到,阿帕奇提供了非常多并且优质的开源项目这些所谓的开源项目就是我们平时所说的  类库,工具类,甚至框架,阿帕奇提供的开源项目大大的简化了我们的开发,而且这些开源项目也成为了一种规范,很多企业都选择使用阿帕奇提供的开源项目,甚至把这些开源项目当做是一种面试题。
Beanutils他就是阿帕奇提供的一个开源项目,他是Apache commons提供的一个组件,Apache commons可以把他看成一个系列,这个系列有很多的组件,每个组件有不同的功能,beanutils的主要功能就是简化javabean封装数据的操作,以前我们要为javabean封装数据,我们就得用set方法,有几个成员变量,就要调用几次方法,而现在有了beanutils,这个事情就变的很简单了。
如果我们想使用beanutils,我们就需要找到他的class文件,或者找到他的jar包,jar包就是一个压缩包,只不过里面存的都是class文件,我们也称之这个jar包是可执行程序。运行jar包需要虚拟机来完成。
Beanutils的主要方法
1. set property,设置属性(有set property,自然有get property)
2. populate(这个方法比较重要,因为他确实非常的方便可以简化封装javabean的操作)
一.Set property
这个方法使用静态来修饰,所以我们可以直接使用类名来调用,没有返回值,有三个参数,第一个参数,接收一个object类型的对象,而且这个对象指向的变量名还叫做Bean,所以这个对象就是一个javabean对象,后面两个参数,一个name,一个value,这就是我们javabean中成员变量的名字以及他对应的值,这个方法他的作用就是为了给我们javabean对象的成员变量进行赋值。
二.get property ,这个方法也是使用静态来修饰,用类名来直接调用,返回值是String类型,也就是这个成员变量这个值不管是什么类型,他都会转变成字符串然后返回,其中两个参数,第一个参数,javabean对象,第二个参数,成员变量的名字。
这两个方法非常的简单,只不过大家还要注意一点,我们之前写javabean的规范让大家把成员变量用私有来修饰,并且提供公共的get和set方法,那在这里如果我们把get和set方法注释了之后再去运行以上的两个方法的话会报错,报错内容是,在我们的类中找不到成员变量,这也说明这两个方法底层其实并不是直接操作成员变量,而是通过get和set方法操作成员变量。也就是说beanutils的set property和get property方法,底层并不是直接操作成员变量,而是操作和成员变量有关的get和set方法。
Beanutils可以简化我们封装javabean的操作,但是我之前说的两个方法好像用处并不太大,现在我来给大家介绍另外一个方法,populate,这个方法非常的有意思而且非常的强大。
他的底层是通过反射实现的,他的参数,第一个参数是一个javabean对象,第二个参数是map,这个map中他的key就对应我们javabean中成员变量的名字,value对应成员变量所对应的具体的值。 后期在我们java ee的学习中,我们可以直接获取到一个存有数据的map,然后通过populate方法为我们的javabean进行封装,这个事情就会变的非常简单,如果没有这个方法,你得到了一个map,你就得遍历这个map,然后获取key,然后为我们的成员变量进行赋值,所以说,beanutils他的出现简化了我们javabean封装的操作。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马