2011-07-15 136 views
2

虽然与Kent Becks合作书TDD通过示例,但我遇到了一些我不理解的Java代码。Java中括号做了什么:美元=(美元)对象;

public boolean equals(Object object) { 
    Dollar dollar= (Dollar) object; 
    return amount == dollar.amount; 
} 

可能有人请向我解释什么Dollar dollar= (Dollar) object;括号是什么意思?

回答

6

这是一个explicit typecast。基本上说,“虽然'对象'被声明为Object,但我知道它实际上是Dollar类型,因此可以将它分配给变量'dollar'”。

没有括号(实际上,这些都是括号,括号看[]<>取决于它们是否“方括号”或“尖括号”,分别等),编译器将报告该线路上的错误。

+0

谢谢你的纠正。英语不是我的母语。我将编辑该问题。 – Aufwind

+0

+1好答案。 – 2011-07-15 02:54:08

1

他们将对象转换为括号中的类型。

在你的榜样,他们告诉Java中object应类型的Dollar

0

因为equals()功能使用类型“对象”为object参数,该(Dollar) object告诉美元的变量object的确是Dollar的类。正如其他答复所述,该表示法称为一个类型转换(typecast),由Java编译器用于确保在将一个变量分配给另一个时使用正确的类型。

作为一个新手程序员,这个东西看起来很混乱,但它确实会在一段时间后沉入其中。

相关问题