0

現在、試験の準備に取り組んでいますが、この投稿の下部にある質問に出くわしました。これは、ラッパーメソッドとラッパークラスに関連しています。ここに違いはありますか?私が理解しているように、ラッパークラスを使用すると、プリミティブをオブジェクトにラップして、コレクションなどに含めることができます。ラッパークラスには、文字列オブジェクトとの間で変換できるユーティリティメソッドも多数あります。以下に、ラッパーメソッドについて質問し、それらをゲッター/セッターメソッドに関連付ける質問があります。setラッパーメソッドはプリミティブを取得してオブジェクトにラップしているだけだと思う​​のは正しいですか、それとも何か違うことをしているのでしょうか?

ラッパーメソッドとは何ですか?いつ役に立ちますか?

Cityクラスで、その場所の各属性、緯度と経度に直接アクセスできるようにするset / getラッパーメソッドを記述します。例:setLatitude:

class City {
    //...

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

    //your code:
}
4

2 に答える 2

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

ラッパーメソッドはラッパー関数を参照できます。ラッパーメソッドは、他のメソッドを呼び出す単なるメソッドです。たとえば、クラスに次の2つのメソッドがある場合があります。

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

また、ラッパーメソッドは次のようになります。

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

つまり、クラス内にすでにある別のメソッドを呼び出すメソッドです。もう1つの例は、をsetResolution(w,h);呼び出すラッパーメソッドと内部を呼び出すラッパーメソッドです。setDefaultResolution()setResolution(DEFAULT_W,DEFAULT_H)

于 2012-05-12T13:07:33.047 に答える
0

「ラッパー クラス」という用語がデコレータ クラスの同義語として使用されていると聞きました ( 「デコレータ パターン」を参照)。

于 2012-05-12T14:22:17.533 に答える