2012-05-12 8 views
1

私は現時点で試験準備に取り組んでおり、この記事の一番下に質問があります。これはラッパーメソッドとラッパークラスの関係です。ここに違いはありますか?ラッパークラスはプリミティブをオブジェクトにラップすることができるので、コレクションのようなものに含めることができます。ラッパークラスには、文字列オブジェクトへの変換や文字列オブジェクトからの変換を可能にするユーティリティメソッドがあります。ラッパーメソッドについて質問し、getter/setterメソッドに関連付ける質問があります。私はセットラッパーメソッドが単にプリミティブを取ってオブジェクトにラップするか、それとも何か違うことをしていると思うのは正しいですか?ラッパーメソッドとラッパークラス

ラッパーメソッドとは何ですか、いつラッパーメソッドが役立ちますか?シティクラスで

が設定を書く/その場所の属性、緯度と経度のそれぞれへの直接アクセスを可能にするラッパー・メソッドを取得し、例えば、setLatitude:。

class City { 
    //... 

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

    //your code: 
} 
+0

に挿入できるようにすることはゲッターのような音を聞いたとセッターメソッド。 –

+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() { } 

そしてラッパー・メソッドは次のようになります。 ラッパーの方法は、例えば、我々はこの2クラスのメソッドを持っているかもしれませんが、他のメソッドを呼び出すだけの方法です既にクラス内にある別のメソッドを呼び出します。もう1つの例はsetResolution(w,h);となり、setDefaultResolution()と呼ばれるラッパーメソッドが呼び出され、setResolution(DEFAULT_W,DEFAULT_H)が呼び出されます。

+2

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

+0

良いロジックと最適化があります。 –

+3

'public boolean compare(boolean anotherBoolean){戻り値== anotherBoolean;}'です。パターンを見ますか?あなたが 'if(booleanExpression){return true; } else {return false; } '、ブール式を直接返す必要があります。 –

0

私はより多くの用途がありデコレータクラスの同義語として使われている用語「ラッパークラスは、」(「'decorator patternを参照)、その後、単にプリミティブ型がコレクション