JavaBean

一、JavaBean简介

javaBean是一种特殊的Java类,以封装和重用为目的,在类的设计上遵从一定的规范,以供其他组件根据这种规范来调用。

javaBean最大的优势在于重用,同时它又具有以下特性:

1.易于维护、使用、编写

2.封装了复杂的业务逻辑

3.可移植性

4.便于传输,即可用于本地也可用于网络传输

JavaBean可分为两种:一种是有用户界面(User Interface,UI)的JavaBean,例如一些GUI组件(按钮、文本框和报表组件等);另一种是没有用户界面,主要负责封装数据、业务处理的JavaBean。JSP通常访问的是最后一种JavaBean。

JSP与Javabean搭配使用,具有以下优势:

1.jsp页面中的html代码与java代码分离,便于页面设计人员和java编程人员的分工和维护。

2.使jsp更加侧重于生成动态网页,事务处理由JavaBean来完成,使系统更趋于组件化、模块化。

javabean的优势,使系统具有更好的健壮性和灵活性,使得jsp+servlet+javabean的组合设计模式成为目前开发Java Web应用的主流模式。

二、javabean规范

1.javabean是一个公开(public)的类,以便被外部程序访问。

2.具有一个无参的构造方法(即一般类中默认的构造方法),以便被外部程序实例化时调用。

3.提供setXxx()和getXxx()方法,以便让外部程序设置和获取其属性。

凡是符合上述规范的java类,都可以被称为javabean。

javabean中的setXxx()和getXxx()方法也被称为setter方法和getter方法,是针对javabean方法的一种命名方式。方法的名称由字符set+属性名和get+属性名构成,属性名是将javabean的属性名称首字母大写后得来。例如,名称为useName的JavaBean属性,对应的setter方法和getter方法为:setUserName()和getUserName()。

JavaBean通过这种方法的命名规范以及对类的访问权限和构造函数的要求,使得外部程序能够通过反射机制来实例化JavaBean和查找到这些方法,从而调用这些方法来设置和获取javabean对象的属性。

示例:一个普通的javabean

package com.rjxy;
import java.util.Date;

public class DemoBean{

  private String userName;
  private int age;
  private Date birthday;
  private boolean married;
  private String[]hobby;

public String getUserName(){
   return userName;
}
public void setUserName(String username){
  this.userName=userName;
}

public int getAge(){
   return age;
}
public void setAge(int age){
   this.age=age;
}
public Date getBirthday(){
  return birthday;
}
public void setBirthday(Date birthday){
    this.birthday=birthday;
}
public boolean  isMarried(){
  return married;
}
public void setMarried(boolean married){
 this.married=married;
}
public String[] getHobby(){
  return hobby;
}
public void setHobby(String[] hobby){
  this.hobby=hobby;
}

}

上述示例中,类DemoBean为一个公有类,有一个默认的无参构造方法,同时有5对setter和getter方法,通过这三个条件,类DemoBean即为一个JavaBean。在此javabean中,5对setter和getter方法分别与5个属性相对应,setter方法通过形参来设置属性值,getter方法通过返回值来获取属性值。需注意的是,对于boolean类型的属性,可以使用get开头,但在开发时习惯以is开头,在这里推荐使用is开头。

在javabean中,对于属性的定义也不同于普通类中的属性定义。javabean中的属性是指setter和getter方法名中所包含的属性名,即使在javabean类中没有定义此名称的实例变量,也可称为javabean的属性。这种定义方式扩展了属性的定义,融入了对javabean所封装的业务功能的表示。例如,下述一个用来封装商品价格计算的javabean。

public class ProductBean{
   //商品单价
   private float price;
   //商品数量
   private int num;
  
   public float getPrice(){
     return price;
  }
   public void setPrice(float price){
     this.price=price;
  }
  public int getNum(){
     return num;
  }
  public void setNum(int num){
   this.num=num;
 }
 //获取商品总价
 public double getTotalPrice(){
  return this.price*this.num;
 }
}

上述示例中,单价和数量表示商品类的属性,属性值的设置和获取由setter和getter方法完成,此处price和num既作为类的属性又作为javabean属性,而对于计算商品总价格这一业务功能,通过getter方法进行了业务封装,方便外部程序的调用和重用,而此时业务功能产生的结果:总价格(TotalPrice),更多的表现为一种业务的临时结果,并不需要作为类的属性进行定义,但可作为javabean属性表现业务功能。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值