7-1-JavaBean基础

目录

前言

一、什么是JavaBean?

二、访问JavaBean的属性

三、BeanUtils工具

 案例:演示使用setProperty()、getProperty()和populate()方法访问JavaBean的属性

总结



前言

在软件开发时,一些数据和功能需要在很多地方使用,为了方便将它们进行“移植”,Sun公司提出了一种JavaBean技术,使用JavaBean可以对这些数据和功能进行封装,做到“一次编写,到处运行”。


一、什么是JavaBean?

JavaBean是Java开发语言中一个可以重复使用的软件组件,它本质上就是一个Java类,为了规范JavaBean的开发,Sun公司发布了JavaBean的规范,它要求一个标准的JavaBean组件需要遵循一定的编码规范,具体如下:

(1)它必须具有一个公共的、无参的构造方法,这个方法可以是编译器自动产生的默认构造方法。

(2)提供公共的setter方法和getter方法,让外部程序设置和获取JavaBean的属性。

示例:

public class Book {
	private double price;
	public double getPrice() {
		return price;
	}
	public void setPrice(double price) {
		this.price = price;
	}
}

二、访问JavaBean的属性

在讲解面向对象时,经常会使用类的属性,类的属性指的是类的成员变量。在JavaBean中同样也有属性,但是它和成员变量不是一个概念,它是以方法定义的形式出现的,这些方法必须遵循一定的命名规范,例如,在JavaBean中包含一个String类型的属性name,那么在JavaBean中必须至少包含getName()和setName()方法中的一个,这两个方法的声明如下所示:

public String getName(){...}
public void setName(String name){...}
getName()方法:称为getter方法或者属性访问器,该方法以小写的get 前缀开始,后跟属性名,属性名的第一个字母要大写,例如,nickName属性的getter方法为getNickName()。 

setName()方法:称为setter方法或者属性修改器,该方法必须以小写的set 前缀开始,后跟属性名,属性名的第一个字母要大写,例如,nickName属性的setter方法为setNickName()。

如果一个属性只有getter方法,则该属性为只读属性,如果一个属性只有setter方法,则该属性为只写属性,如果一个属性既有getter方法,又有setter方法,则该属性为读写属性。通常来说,在开发JavaBean时,其属性都定义为读写属性。

需要注意的是,对于JavaBean属性的命名方式有一个例外情况,如果属性的类型为boolean,它的命名方式应该使用is/set而不是get/set。例如有一个boolean类型的属性married,该属性所对应的方法声明如下所示:

public boolean isMarried(){...}
public void setMarried(boolean married){...}从上面的代码可以看出,married属性的setter方法命名方式没有变化,而getter方法变成了isMarried()方法 ,当然,如果一定要写成getMarried()也是可以的,只不过isMarried()更符合命名规范。

示例:

public class Student {
	private String sid;
	private String name;
	private int age;
	private boolean married;
	// age属性的getter和setter方法
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	// married属性的getter和setter方法
	public boolean isMarried() {
		return married;
	}
	public void setMarried(boolean married) {
		this.married = married;
	}
	// sid属性的getter方法
	public String getSid() {
		return sid;
	}
	// name属性的setter方法
	public void setName(String name) {
		this.name = name;
	}
	public void getInfo() {
		System.out.print("我是一个学生");
	}
}

三、BeanUtils工具

大多数Java程序开发人员过去习惯于创建JavaBean,然后通过调用JavaBean属性对应的getter和setter方法来访问属性。但是,由于各种Java工具和框架层出不穷,并不能保证属性对应的getter和setter方法总能被调用,因此动态访问Java对象的属性是十分必要的,为此,Apache软件基金会提供了一套简单、易用的API——BeanUtils工具。

BeanUtils工具包的官网首页地址为“http://commons.apache.org/proper/commons-beanutils”,登录到官网首页后,单击左边菜单栏【BEANUTILS】【Download】选项,即可跳转到BeanUtils的下载页面,如下图所示。

解压下载后的文件便可获得BeanUtils开发所需的JAR包。需要注意的是,BeanUtils工具包还需要一个logging包来配合使用,logging包中包装了各种日志API的实现,感兴趣的读者可以进入官网(http://commons.apache.org/proper/commons-logging)下载。

BeanUtils工具中封装了许多类,其中最核心的是org.apache.commons.beanutils包下的BeanUtils类,接下来,针对BeanUtils类的常用方法进行简单的介绍,具体如表所示。

 案例:演示使用setProperty()、getProperty()和populate()方法访问JavaBean的属性


总结

Guess you like

Origin blog.csdn.net/daqi1983/article/details/120987493