在我理解看来,JavaBean与上文讲的接口有着相似的地方:
这个容器就被称为JavaBean,JavaBean里的属性全都使用private修饰可以保证只能通过JavaBean里的getter
方法和setter
方法去设置或者获得类里的属性,当然setter
和getter
方法都是由public
修饰,确保其他地方能正常使用这些属性
JavaBean的设计规则:
JavaBean是一个公共类
JavaBean类具有一个公共无参的构造方法
JavaBean所有的属性定义为私有
JavaBean中,需要对每个属性都提供两个公共方法,set
方法和get
方法
定义JavaBean的时候,通常放置在一个命名的包下。
举个栗子
1public class UserBean {
2 //定义UserBean的私有对象 name和age
3 private String name; //用户名
4 private int age; //用户年龄
5
6 //以下都是JavaBean的set方法和get方法
7 public void setName(String name) {
8 this.name = name;
9 }
10
11 public String getName() {
12 return name;
13 }
14
15 public void setAge(int age) {
16 this.age = age;
17 }
18
19 public int getAge() {
20 return age;
21 }
22}
这是一个简单的JavaBean用来存储用户数据,它内置的属性很简单,只有name
和age
,也有关于属性的set
方法和get
方法
1 public static void main(String[] args) {
2 UseUserBean useBean = new UseUserBean(); //实例化UseUserBean对象,方便调用run方法
3 UserBean user = new UserBean();
4 user.setName("zhangsan");
5 user.setAge(12);
6 useBean.run(user);
7
8 useBean.run2("zhangsan", 12);
9 }
10
11 //使用javabean的方式处理数据
12 public void run(UserBean user) {
13 System.out.println("用户名:" + user.getName() + " 年龄: " + user.getAge());
14 }
15
16 //使用普通的变量的方式处理数据
17 public void run2(String name, int age){
18 System.out.println("用户名:" + name + " 年龄: " + age);
19 }
run
和run2
的结果是一样的,都可以打印出用户的信息,但是当用户的其他数据比较多时,是不是方法里的参数就变得很多了,并且外部也不好调用。
如果我将用户的数据都封装到一个类里,再通过变量的传递,就可以将这个类里的其他数据流转到其他要使用这些属性的地方,将用户的数据封装到一个容器里,这种操作就降低了代码的耦合性。
使用javabean有很多好处,比如
- 提高代码的可复用性:对于通用的书屋处理逻辑,数据库操作都可以封装在Javabean里,通过调用javabean的属性和方法可快速进行程序设计
- 程序易于开发维护:实现逻辑的封装,使事物处理和显示互不干扰
- 支持分布式运用:多用javabean,尽量减少java代码和html的混编
- 可以便捷地传递数据
MVC里有Model
模型的概念,就是将数据封装到模型里,这和JavaBean的概念是一样的,就是构建好一个模型,然后照着样子将数据放到一个模子里,这就是实例化了一个对象。
总结
关于JavaBean的知识还有很多,这里只是简单地介绍JavaBean,我们会经常在JavaWeb开发中用到它。