JavaBean笔记

来源:互联网 发布:地方新闻网站源码 编辑:程序博客网 时间:2024/06/06 17:52

JavaBean

      • JavaBean
        • 概念
        • 访问JavaBean的属性
        • BeanUtils工具

1 概念

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

  • 它必须有一个公共的、无参的构造方法,这个方法可以是编译器自动产生的默认构造方法。
  • 它提供公共的setter方法和getter方法,让外部程序设置和获取JavaBean的属性。

例子:

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

Book类就是一个JavaBean,它没有定义构造方法,Java编译器在编译时,会自动为这个类提供一个默认的构造方法。
Book类中定义了一个price属性,并提供了公共的setPrice( )方法和getPrice( )方法供外界访问这个属性。

2 访问JavaBean的属性

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

public double getName() {        return name;    }public void setName(String name) {        this.name = name;    }
  • getName()方法:称为getter方法或属性访问器,该方法以小写的get前缀开始,后跟属性名,属性名的第1个字母大写。

  • setName()方法:称为setter方法或属性修改器,该方法以小写的set前缀开始,后跟属性名,属性名的第1个字母大写。如果属性的类型为Boolean,它的命名方式应该使用is/set,而不是get/set。当然,如果一定要写成getXxx()也可以,只不过isXxx()更符合命名规则。

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

例子:

public class Student {    private String id;    private String name;    private String age;    private boolean married;    public String getId() {        return id;    }    public void setName(String name) {        this.name = name;    }    public String getAge() {        return age;    }    public void setAge(String age) {        this.age = age;    }    public boolean isMarried() {        return married;    }    public void setMarried(boolean married) {        this.married = married;    }    public void getInfo() {        System.out.println("我是一个学生");    }} 
  1. age和married属性是可读写属性;
  2. name是只写属性;
  3. id是只读属性;
  4. info是只读属性,但它没有像id那样的命名相同的成员变量。

3 BeanUtils工具

http://blog.csdn.net/jpzhu16/article/details/51582930

原创粉丝点击