2012-05-12 6 views
1

현재 시험 준비 중입니다.이 게시물의 아래쪽에있는 질문을 발견했습니다. 래퍼 메서드와 래퍼 클래스를 관련이 있습니다. 여기에 차이점이 있습니까? 래퍼 클래스는 프리미티브가 객체에 래핑되도록 허용하므로 컬렉션과 같은 객체에 포함될 수 있습니다. 래퍼 클래스에는 문자열 개체로 변환하거나 문자열 개체로 변환 할 수있는 유틸리티 메서드가 많이 있습니다. 래퍼 메서드에 대해 묻고 getter/setter 메서드와 관련있는 아래 질문이 있습니다. 나는 set wrapper 메서드가 단지 프리미티브를 가져 와서 객체에 배치하거나 뭔가 다른 것을하고 있다고 생각하는 것이 맞습니까?래퍼 메서드 및 래퍼 클래스

래퍼 메서드는 무엇이며 언제 유용합니까? 시티 클래스에서

위치의 속성, 위도와 경도의 각각에 직접 액세스 할 수 있도록 래퍼 방법을 얻을/세트 쓰기, 예를 들어, setLatitude을 :.

class City { 
    //... 

    public void setLatitude(double value) 
    { 
     location.setLat(value); 
    } 

    //your code: 
} 
+0

는 게터와 같은 소리 컬렉션에 삽입 할 수 있도록 많은 용도가있는 장식 클래스의 동의어합니다 ('decorator pattern '참조)로 사용되는 setter 메서드. –

+2

래퍼 메서드는 비표준 용어 (AFAIK)입니다. 래퍼 메서드를 호출하는 것은 다른 래핑 된 개체로만 위임하는 메서드입니다. 위의 경우,'setLatitude()'는'Location.setLat()'에 위임합니다. –

+0

래퍼 클래스 또는 래퍼 메서드에 대해 이야기하고 있습니까? –

답변

1

래퍼 클래스는 클래스입니다 특정 클래스 또는 프리미티브의 유용성을 확장합니다.

public class NewBoolean{ 
    private boolean value = false; 
    public NewBoolean(boolean state) { 
     value = state; 
    } 
    public boolean value() { 
     return value; 
    } 
    public void setValue(boolean value) { 
     this.value = value; 
    } 
    public boolean isTrue() { 
     return value; 
    } 

    public boolean isFalse() { 
     return !value; 
    } 

    public boolean compare(boolean anotherBoolean){ 
     return value==anotherBoolean; 
    } 
} 

그것은 어떤 boolean 값을 바꿀 수 있고, boolean 프리미티브의 유용성을 확장 할 수있는 새로운 방법이있다 : 예를 들어,이 클래스를 가지고.

래퍼 메서드는 래퍼 함수를 ​​참조 할 수 있습니다. , 방법 요컨대

public void toggleFullScreen() { 
    if(fullscreen) { 
     setWindowMode(); 
    } 
    else { 
     setFullScreen(); 
    } 
} 

을 :

public void setFullScreen() { } 
public void setWindowMode() { } 

그리고 래퍼 방법이 될 수 있습니다 래퍼 방법은 예를 들어, 우리는이 두 클래스의 메소드가있을 수 있습니다, 다른 메소드를 호출 단지 방법이 있습니다 이 클래스는 이미 클래스 내부의 다른 메서드를 호출합니다. 또 다른 예제는 setResolution(w,h);이고 setDefaultResolution()을 호출하는 래퍼 메소드가 있으며 이는 setResolution(DEFAULT_W,DEFAULT_H)을 호출합니다. 나는 용어 ​​'래퍼 클래스를'들었다

+2

public boolean isTrue() {return value;} public boolean isFalse() {return! value;} –

+0

멋진 논리와 최적화가 있습니다. –

+3

'public boolean compare (boolean anotherBoolean) {리턴 값 == anotherBoolean;}'. 패턴을 봐? if (booleanExpression) {return true; } else {return false; }', 당신은 부울 표현식을 직접 반환해야합니다. –

0

는 단지 기본 유형이