type
status
date
slug
summary
tags
category
icon
password
Property
在Java中,有很多
class
的定义都符合这样的规范:- 若干
private
实例字段;
- 通过
public
方法来读写实例字段。
例如:
如果读写方法符合以下这种命名规范:
那么这种
class
被称为JavaBean
上面的字段是
xyz
,那么读写方法名分别以get
和set
开头,并且后接大写字母开头的字段名Xyz
,因此两个读写方法名分别是getXyz()
和setXyz()
。boolean
字段比较特殊,它的读方法一般命名为isXyz()
:我们通常把一组对应的读方法(
getter
)和写方法(setter
)称为属性(property
)。例如,name
属性:- 对应的读方法是
String getName()
- 对应的写方法是
setName(String)
只有
getter
的属性称为只读属性(read-only),例如,定义一个age只读属性:- 对应的读方法是
int getAge()
- 无对应的写方法
setAge(int)
类似的,只有
setter
的属性称为只写属性(write-only)。很明显,只读属性很常见,只写属性不常见。
属性只需要定义
getter
和setter
方法,不一定需要对应的字段。例如,child
只读属性定义如下:可以看出,
getter
和setter
也是一种数据封装的方法。JavaBean的作用
JavaBean主要用来传递数据,即把一组数据组合成一个JavaBean便于传输。此外,JavaBean可以方便地被IDE工具分析,生成读写属性的代码,主要用在图形界面的可视化设计中。
通过IDE,可以快速生成
getter
和setter
。例如,在Eclipse中,先输入以下代码:然后,点击右键,在弹出的菜单中选择“Source”,“Generate Getters and Setters”,在弹出的对话框中选中需要生成
getter
和setter
方法的字段,点击确定即可由IDE自动完成所有方法代码。枚举JavaBean属性
要枚举一个JavaBean的所有属性,可以直接使用Java核心库提供的
Introspector
:可以列出所有的属性,以及对应的读写方法。注意
class
属性是从Object
继承的getClass()
方法带来的。