2014-09-09 4 views
-3

가정 해 보겠습니다 I했습니다 다음 클래스 :값 함수에서 반환

입니다
class A{ 
    private Map<String, String> map; 

    private Map<String, String> getMap(){ 
     return map; 
    } 

    private doActionOnMap(){ 
     Map<String, String> map = getMap(); //Is the map returned by getMap() 
              //refers to the private field map? 
    } 
} 

, 방법으로 어떤 값을 반환은 객체 다른 (원본 사본)입니다 아니면있는 객체를 참조 할 때 내부 방법?

+2

명백하게 동일하지만, 결코 할당하지 않았으므로 null이됩니다. – MightyPork

답변

1

참조 유형이므로 원본 개체에 대한 참조 만 얻을 수 있습니다. 사본이 아닙니다.

난 당신이 참조 및 값 유형의 차이를 찾아 볼 제안

Reference Types

2

그것은 참조 ... 당신이 복제를 할 때, 당신이해야합니다 자신에게 그것을

0
private Map<String, String> map; 
를 구현하는 것

map은 클래스 멤버이며 클래스의 각 인스턴스와 연결되어 있습니다. 다음과 같이 작성하십시오 :

Map<String, String> myMap = a.getMap(); 

참조 및 사본이 없습니다. 변경하면이 클래스에서이 메서드를 사용하는 모든 메서드에 대해 변경됩니다.

관련 문제