Думайте о параметрах метода как о своей собственной переменной объявлений .Если бы вы заменили вызов метода одним блоком кода, он выглядит следующим образом:
Foo myFoo;
{ //Method call starts here
Foo foo;
foo = myFoo;
Foo f = new Foo();
foo = f;
} //Method call ends here
Даже если параметр метода имеет то же имя, что и другая переменная, параметр метода все еще остается собственным,уникальная ссылка, о которой знает только метод.Это то же самое, что говорит Энг.Фуад выше.