JavaBeans:属性和属性之间有什么区别?

时间:2012-05-27 12:30:09

标签: java properties attributes javabeans

在我的修订列表的JavaBean部分中,它声明我应该知道“属性和属性之间的区别”。我真的找不到两者之间的区别。我知道JavaBeans使用属性,而普通的Java类使用属性(或者至少就是我所教导的那些属性),但我看不出真正的区别。

是否与getter / setter方法有关?

由于

2 个答案:

答案 0 :(得分:7)

实施例

属性和属性是等效的

private int age;

public int getAge() {
    return age;
}

public void setAge(int age) {
    this.age = age;
}

属性age转换为personAge属性

private int personAge;

public int getAge() {
    return personAge;
}

public void setAge(int age) {
    this.personAge = age;
}

属性是合成的,没有属性

在这种情况下,该属性是只读的:

private int age;
private Sex sex;

public boolean isFemaleAdult() {
    return sex == Sex.FEMALE && age >= 18
}

我在Tapestry documentation中找到了很少的相关提示:

  

属性与属性不同......但是,大多数情况下,每个属性都由属性备份。

以后:

  

另一种常见模式是合成属性。在这里,根本没有真正的属性,值总是在运行中计算。

答案 1 :(得分:4)

从广义上讲,属性对应于方法对atype getXXX() / void setXXX(atype )。属性指的是成员字段。