5

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

它与 getter/setter 方法有关吗?

谢谢

4

2 回答 2

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 文档中发现了一些有趣的提示:

属性与属性不同……尽管大多数情况下,每个属性都由属性支持。

然后:

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

于 2012-05-27T12:36:05.963 回答
4

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

于 2012-05-27T12:33:59.173 回答