JavaBean3-16

简介: JavaBean3-16

在Java中,有很多class的定义都符合这样的规范:

若干private实例字段;

通过public方法来读写实例字段。

例如:

public class Person {
    private String name;
    private int age;
    public String getName() { return this.name; }
    public void setName(String name) { this.name = name; }
    public int getAge() { return this.age; }
    public void setAge(int age) { this.age = age; }
}


如果读写方法符合以下这种命名规范:

// 读方法:
public Type getXyz()
// 写方法:
public void setXyz(Type value)

那么这种class被称为JavaBean:

上面的字段是xyz,那么读写方法名分别以get和set开头,并且后接大写字母开头的字段名Xyz,因此两个读写方法名分别是getXyz()和setXyz()。

boolean字段比较特殊,它的读方法一般命名为isXyz():

// 读方法:
public boolean isChild()
// 写方法:
public void setChild(boolean value)

我们通常把一组对应的读方法(getter)和写方法(setter)称为属性(property)。例如,name属性:

对应的读方法是String getName()

对应的写方法是setName(String)

只有getter的属性称为只读属性(read-only),例如,定义一个age只读属性:

对应的读方法是int getAge()

无对应的写方法setAge(int)

类似的,只有setter的属性称为只写属性(write-only)。

很明显,只读属性很常见,只写属性不常见。

属性只需要定义getter和setter方法,不一定需要对应的字段。例如,child只读属性定义如下:

public class Person {
    private String name;
    private int age;
    public String getName() { return this.name; }
    public void setName(String name) { this.name = name; }
    public int getAge() { return this.age; }
    public void setAge(int age) { this.age = age; }
    public boolean isChild() {
        return age <= 6;
    }
}


可以看出,getter和setter也是一种数据封装的方法。

JavaBean的作用

JavaBean主要用来传递数据,即把一组数据组合成一个JavaBean便于传输。此外,JavaBean可以方便地被IDE工具分析,生成读写属性的代码,主要用在图形界面的可视化设计中。

通过IDE,可以快速生成getter和setter。例如,在Eclipse中,先输入以下代码:

public class Person {
    private String name;
    private int age;
}

然后,点击右键,在弹出的菜单中选择“Source”,“Generate Getters and Setters”,在弹出的对话框中选中需要生成getter和setter方法的字段,点击确定即可由IDE自动完成所有方法代码。

枚举JavaBean属性

要枚举一个JavaBean的所有属性,可以直接使用Java核心库提供的Introspector:

import java.beans.*;
相关文章
|
3月前
|
Java
JavaBean技术
文章《JavaBean技术_传统javabean》讨论了JavaBean的概念、种类、以及如何在JSP页面中获取和设置JavaBean属性。它解释了JavaBean如何帮助分离HTML和Java代码,降低耦合性,并通过示例代码演示了在JSP中使用`<jsp:useBean>`和`<jsp:getProperty>`标签来实例化JavaBean对象以及获取和设置其属性值。
|
6月前
|
Java 数据库
JAVA对象和类
JAVA对象和类
21 0
|
6月前
|
存储 Java 对象存储
Java对象和类
Java对象和类
32 1
|
6月前
|
Java API
JavaBean解析
JavaBean解析
|
Java
JavaBean学习小结
JavaBean学习小结
40 0
|
开发框架 安全 Java
|
Java
访问JavaBean
访问JavaBean
58 0
|
Java 编译器 应用服务中间件
关于JavaBean你了解多少~(2)
关于JavaBean你了解多少~(2)
|
Java API
关于JavaBean你了解多少~(3)
关于JavaBean你了解多少~(3)
|
设计模式 Java
关于JavaBean你了解多少~
关于JavaBean你了解多少~