多选题 Given the class FloatNumber and method addHalf, what is the output if the following code segment is executed?
public class FloatNumber {
float number;
public FloatNumber(float number {
this.number = number;
}
floatgetNumber( {
retum number;
}
void setNumber(float number) {
this.number = number;
}
}
void addHalf(FloatNumber value) {
value.setNumber(value.getNumber()+(value.getNumber()/2f));
}
/* CODE SEGMENT */
FloatNumber value = new FloatNumber(1f);
addHalf(value);
System.out.println("value ="+value.getNumber());
  • A. value = 1
  • B. value = 1.5
  • C. value = 2
  • D. value = 0
【正确答案】 B
【答案解析】FloatNumber对象是通过引用传递的。因此,方法改变了其值,当代码返回原来调用的代码段时,此改动依然存在。A、C和D不正确。A不正确,因为FloatNumber是通过引用传递的。如果它是float基本数据类型,这将是正确答案。C和D不正确,无论这个变量是引用传递还是值传递。