我们目前正在对OCA证书进行相同的测试,而今天我们遇到了一个小问题。
我会尽量保持简短:
Which are methods using JavaBeans naming conventions for accessors and mutators?
(Choose all that apply)
A. public boolean getCanSwim() { return canSwim;}
B. public boolean canSwim() { return numberWings;}
C. public int getNumWings() { return numberWings;}
D. public int numWings() { return numberWings;}
E. public void setCanSwim(boolean b) { canSwim = b;}
答案(由OCA SE 8指定): C 和 E
我们的讨论是在C点:
public int getNumWings (){返回 numberWings ;}
我的同事们的观点是,由于下面提到的规则,这是错误的。方法访问者必须是 getNumberWings ,所以 C 点是错误的。我附上了OCA的规则表,它认为规则5是错误的。 PHOTO of Rules for JavaBeans naming convention on OCA SE 8 page 206
据我所知,方法的名称不必尊重属性。
您对此有何看法?
OCA Oracle认证助理Java SE 8程序员I学习指南考试1Z0-808
我还尝试在以下方面找到合适的答案:
oracle的JavaBeans约定:http://download.oracle.com/otn-pub/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/beans.101.pdf?AuthParam=1484818426_7e07f5a35c14ebfbadb2c68798198d7e
JavaBeans约定(简而言之是Java)
最佳答案
您的同事(我认为)在争论
public int getNumWings() { return numberWings;}
违反JavaBean,因为字段名称和属性名称不同。
规范不支持。 Java Bean约定(编码为here)状态为:
请注意,它并没有说明(通常)保存属性值的
private
字段的名称。实际上,如果属性值可以用其他方式表示,则该字段甚至可能不存在。