2013-07-18 65 views
0

請參見使用HashMap的以下類定義。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); 
    } 
} 

回答

1

這是沒有必要的參數複製到一個局部變量,因爲這樣你將有相同的變量(name_name)的兩個副本,而你只需要一個。

此外,你可能需要將線路改爲

String name = _name; 

,使其編譯。

+0

是的,並感謝您的提示:) 乾杯! – Pato

0

您可以直接使用形式參數,而無需將其複製到本地參數中,因爲在調用函數時它將獲得原始值。

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

只有在getter和setter的情況下,你需要使用setter設置局部變量並使用getter獲取更新值。

+0

好的。謝謝你的解釋。 歡呼! – Pato