JavaBean是Java中的一个组件,类似于微软的COM组件,其本质上是一个封装了一系列属性和方法的类。该类遵循一定的标准,提供公共方法,只要遵循同样标准,用户就可以调用JavaBean里面已经设计好的方法,从而达到代码重复利用的目的。本文将介绍JavaBean技术的基础知识。
一、什么是JavaBean
简单的说,JavaBean就是普通的Java类,只是它遵循了一些特定的规范(可称之为JavaBean规范),对一些功能进行封装,并对外界提供可以调用的方法接口,从而使其他开发者可以调用其内部已有的功能,从而实现代码的重复利用,而且对某个功能模块的修改完全不会影响其他模块。当程序出错时,很容易把错误定位在某哥模块上,使程序调试、开发效率大大提高。由于开发的功能模块都封装成了可以重复利用的组件,团队联合开发大型应用系统也方便了许多。
下面通过一个简单的例子来展示JavaBean的规范,这段程序的功能就是求出a、b的和,并且在控制台输出;view plain package test.javabean;//a和b相加的JavaBean AddBean public class AddBean {
//私有属性a,b private int a;private int b;
//公有方法计算a,b两个数的和public int add(int a, int b){ return a+b;}
//公有方法在控制台打印a,b两个数的和public void print(){ System.out.println(“a+b= ” + add(a,b));}
//相对应于a属性的获取方法public int getA() { return a;} //相对应于a属性的设置方法public void setA(int a) { this.a = a;} //相对应于b属性的获取方法public int getB() { return b;} //相对应于b属性的设置方法public void setB(int b) { this.b = b;}
调用AddBean.java的简单示例代码:view plain package test.javabean;//调用AddBean 的一个简单示例public class TeatAddBean {
/** * @param args */ public static void main(String[] args) { //新建AddBean对象AddBean add = new AddBean();
//设置a、b的值add.setA(10);add.setB(20);
//调用AddBean的方法在控制台打印a、b的和add.print();
}
}运行TestAddBean 结果如下:
观察AddBean的代码,可知,JavaBean 本质上就是为了重复利用代码(如方便 TestAddBean 的调用)而进行功能封装的Java类,在遵循特定的规范基础上向外界提供调用的接口。 那到底有哪些规范呢?下一部分就来介绍JavaBean的编码规则,就能了解了。
二、JavaBean 的编码规则
前面反复有提到 JavaBean 要遵循特定的规范标准,正是这些规范标准将它与普通的Java代码区分开,而这个规范标准则是通过特定的编码规则来体现的。上一部分中的AddBean.java就是一个标准的JavaBean.观察代码,我们可以总结出,一个JavaBean是由其属性和方法构成,这些属性和方法的编码规则如下:1、JavaBean中的所有的属性都是私有的,即属性的访问类型都设置为private.这样设置的好处是提高对属性值的保护,可以防止一些恶意的程序修改属性值,同时,也良好地体现了JavaBean的封装性。对属性的取值和赋值操作要通过对应的方法进行。
2、在JavaBean中的每一个属性,都必须有相对应的属性获取和设置方法,即每个属性必须要提供对应的 getXxx 和 setXxx 方法,并且每个方法的访问类型必须为 public 类型的,其目的是供其他的程序进行设置或获取属性值。例如,示例的中的属性a ,提供了与其对应的setA()和getA()方法。
3、如果属性的类型为boolean型的数据,那么要设置它的方法就不再是 getXxx 和 setXxx 方法了,应该相对应的改成isXxx() 和setXxx() 方法。其中isXxx方法的效果和取值get的作用相同,只是,在英语中,将 is 放在前面可以表示一个疑问句,需要做是或否的回答。所以用 is 标志的属性,就表明它是一个boolean类型变量,既方便又合理。
以上三条就是编写JavaBean需要遵循的编码规则,只有这样,支持JavaBean的环境引擎才能找到JavaBean的属性和方法,别的开发者才能调用JavaBean中提供的功能方法。