0

请参阅以下使用 HashMap 的类定义。

为什么不需要像我在第二种方法中那样将方法的形式参数传递给本地参数?

import java.util.HashMap;

public class MapTester
{
    private HashMap<String, String> phoneBook = new HashMap<String, String> ();

    public MapTester()
    {
        phoneBook.put("Homer Jay Simpson", "(531) 9392 4587");
        phoneBook.put("Charles Montgomery Burns", "(531) 5432 1945");
        phoneBook.put("Apu Nahasapeemapetilon", "(531) 4234 4418");        
    }    

    public void enterNumber(String name, String number)
    {       
        phoneBook.put(name, number);
    }

    public String lookupNumber(String _name) 
    {          
      name = _name;  
      return phoneBook.get(name);
    }   
}
4

2 回答 2

1

不必将参数复制到局部变量,因为这样您将拥有同一个变量 (name_name) 的两个副本,而您只需要一个。

此外,您可能需要将行更改为

String name = _name;

使其编译。

于 2013-07-18T14:23:38.963 回答
0

您可以直接使用形参,而无需将其复制到本地参数中,因为在调用函数时它将获得原始值。

 public String lookupNumber(String _name) 
 {          
      return phoneBook.get(_name);
 }  

只有在 getter 和 setter 的情况下才需要,使用 setter 设置局部变量并使用 getter 获取更新的值。

于 2013-07-18T14:57:51.447 回答