Что делают скобки в Java: объект Dollar dollar = (Dollar); - PullRequest
2 голосов
/ 15 июля 2011

При работе с Kent Becks Book TDD на примере я столкнулся с неким Java-кодом, который я не понимал.

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

Может ли кто-нибудь объяснить мне, что означают скобки в Dollar dollar= (Dollar) object;

Ответы [ 3 ]

6 голосов
/ 15 июля 2011

Это явный тип . В основном это говорит о том, что «хотя« объект »был объявлен с типом Object, я знаю, что на самом деле он имеет тип Dollar, поэтому можно присвоить его переменной« доллар »».

Без скобок (на самом деле это скобки, скобки выглядят как [] или <> в зависимости от того, являются ли они «квадратными скобками» или «угловыми скобками», соответственно), компилятор сообщит об ошибке в этой строке.

1 голос
/ 15 июля 2011

Они приводят объект к типу в круглых скобках.

В вашем примере они говорят java, что object должно иметь тип Dollar

0 голосов
/ 15 июля 2011

Поскольку функция equals() использует тип "Объект" для параметра object, (Dollar) object сообщает переменной доллара, что object действительно принадлежит к классу Dollar.Как говорилось в других ответах, нотация называется Typecast и используется компилятором Java, чтобы гарантировать, что вы используете правильный тип, когда вы присваиваете одну переменную другой.начинающему программисту эта штука может показаться очень запутанной, но через некоторое время она начинает проявляться.

...