0

我目前正在准备考试,我在这篇文章的底部遇到了一个问题。它与 Wrapper 方法与 Wrapper 类有关。这里有区别吗?据我了解,包装类允许将原语包装在对象中,以便它们可以包含在集合之类的东西中。Wrapper 类也有一堆实用方法,允许在字符串对象之间进行转换。我在下面有一个问题,询问包装器方法并将它们与 getter/setter 方法联系起来。我是否认为 set wrapper 方法只是采用原语并将其包装在对象中,还是在做不同的事情?

什么是包装器方法以及它们何时有用?

在 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原语可用性的新方法。

包装器方法可以引用包装器函数。包装器方法只是调用其他方法的方法,例如,我们可能在一个类中有这两个方法:

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

包装方法可能是:

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

简而言之,一个调用类中已经存在的另一个方法的方法。另一个例子是一个setResolution(w,h);和一个包装器方法调用什么setDefaultResolution(),然后调用setResolution(DEFAULT_W,DEFAULT_H)内部。

于 2012-05-12T13:07:33.047 回答
0

我听说术语“包装器类”被用作装饰器类的同义词(参见“装饰器模式”),它有更多的用途,然后只允许将原始类型插入到集合中

于 2012-05-12T14:22:17.533 回答