在使用 Kent Becks Book TDD by Example时,我遇到了一些我不理解的 Java 代码。
public boolean equals(Object object) {
Dollar dollar= (Dollar) object;
return amount == dollar.amount;
}
有人可以向我解释一下括号是什么Dollar dollar= (Dollar) object;
意思吗?
这是一个明确的类型转换。基本上它是在说“虽然 'object' 是用 type 声明的Object
,但我知道它实际上是 type Dollar
,所以可以将它分配给变量 'dollar'”。
如果没有括号(实际上,这些是括号,括号看起来像[]
或<>
取决于它们分别是“方括号”还是“尖括号”),编译器会在该行报告错误。
他们将对象转换为括号中的类型。
在您的示例中,他们告诉 javaobject
应该是类型Dollar
因为该equals()
函数使用类型“Object”作为object
参数,所以(Dollar) object
告诉美元变量object
确实属于Dollar
该类。正如其他回复所说,这种表示法称为类型转换,Java 编译器使用它来确保在将一个变量分配给另一个变量时使用正确的类型。
对于它的价值,作为一个新手程序员,这些东西可能看起来很混乱,但它确实在一段时间后开始下沉。