虽然与Kent Becks合作书TDD通过示例,但我遇到了一些我不理解的Java代码。Java中括号做了什么:美元=(美元)对象;
public boolean equals(Object object) {
Dollar dollar= (Dollar) object;
return amount == dollar.amount;
}
可能有人请向我解释什么Dollar dollar= (Dollar) object;
括号是什么意思?
虽然与Kent Becks合作书TDD通过示例,但我遇到了一些我不理解的Java代码。Java中括号做了什么:美元=(美元)对象;
public boolean equals(Object object) {
Dollar dollar= (Dollar) object;
return amount == dollar.amount;
}
可能有人请向我解释什么Dollar dollar= (Dollar) object;
括号是什么意思?
这是一个explicit typecast。基本上说,“虽然'对象'被声明为Object
,但我知道它实际上是Dollar
类型,因此可以将它分配给变量'dollar'”。
没有括号(实际上,这些都是括号,括号看[]
或<>
取决于它们是否“方括号”或“尖括号”,分别等),编译器将报告该线路上的错误。
他们将对象转换为括号中的类型。
在你的榜样,他们告诉Java中object
应类型的Dollar
因为equals()
功能使用类型“对象”为object
参数,该(Dollar) object
告诉美元的变量object
的确是Dollar
的类。正如其他答复所述,该表示法称为一个类型转换(typecast),由Java编译器用于确保在将一个变量分配给另一个时使用正确的类型。
作为一个新手程序员,这个东西看起来很混乱,但它确实会在一段时间后沉入其中。
谢谢你的纠正。英语不是我的母语。我将编辑该问题。 – Aufwind
+1好答案。 – 2011-07-15 02:54:08