В чем смысл последнего ключевого слова для аргументов метода в Java?

Возможный дубликат:
Почему я должен использовать ключевое слово final для параметра метода в Java?

В чем смысл ключевого слова final в Java? Если я передаю неокончательное int методу и изменю его внутри метода, он останется таким же, каким был до вызова метода после его вызова. Если я передаю последний объект методу и изменю атрибуты объекта, находясь внутри метода, атрибуты все равно будут изменены после вызова метода.

Итак, зачем вообще есть ключевое слово final в сигнатуре метода? Если вы измените значение аргумента, находясь внутри метода, они все равно останутся такими же вне метода, а если вы измените атрибуты объекта, то состояние этого объекта изменится - независимо от того, является оно окончательным или нет. Итак, в чем цель? Какие преимущества дает этот метод?


person user919860    schedule 07.11.2011    source источник
comment
По этому поводу уже так много вопросов.   -  person Nettogrof    schedule 08.11.2011
comment
вы путаете ссылку с объектом. final делает неизменной ссылку, а не состояние самого объекта.   -  person    schedule 08.11.2011
comment
Разве ссылка не одно и то же? Когда вы задаете параметр в Java, вам в значительной степени предоставляется копия значения. Однако объекты по-прежнему изменяются изнутри метода, если меняют свои значения, потому что имя объекта является копией ссылки. Если вы переназначаете этот объект внутри вашего метода другому объекту, объект останется таким же вне вызванного метода. Все, что вы сделали, это заставили эту переменную ссылаться на какой-то другой объект в другом месте в памяти. Исходная ссылка остается нетронутой.   -  person user919860    schedule 09.11.2011