2013-07-18 2 views
0

HashMap을 사용하여 다음 클래스 정의를 참조하십시오.HashMap 메서드/매개 변수

왜 두 번째 방법에서와 마찬가지로 메서드의 형식적 매개 변수를 로컬 매개 변수에 전달할 필요가 없습니까? 당신이 하나를 필요로하는 동안 다음 같은 변수 (name_name)의 두 사본이 때문에

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

지역 변수에 매개 변수를 복사 할 필요는 없습니다.

또한, 당신은 아마 컴파일 할

String name = _name; 

에 줄을 변경해야합니다.

+0

예, 감사합니다. 힌트 : 건배! – Pato

0

형식 매개 변수는 함수를 호출 할 때 원래 값을 가지므로 로컬 매개 변수에 복사하지 않고 직접 사용할 수 있습니다.

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

그것은 단지 당신이 세터를 사용하여 로컬 변수를 설정하고 게터를 사용하여 값을 업데이 트 getter와 setter의 경우에 필요하다.

+0

확인. 당신의 설명에 감사드립니다. 건배! – Pato