包装器方法和包装器类

时间:2012-05-12 12:57:32

标签: java wrapper

我正在准备考试准备,我在这篇帖子的底部遇到了一个问题。它涉及Wrapper方法Vs Wrapper类。这里有区别吗?据我所知,包装类允许将基元包装在对象中,以便它们可以包含在集合之类的东西中。包装类还有一堆实用程序方法,允许转换为字符串对象和从字符串对象转换。我在下面有一个问题,询问包装器方法并将它们与getter / setter方法联系起来。我是否认为set wrapper方法只是将一个原语包装在一个对象中,或者它是在做一些不同的东西?

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

在City类中编写set / get包装器方法,允许直接访问其位置的每个属性,纬度和经度。例如,setLatitude:

class City {
    //...

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

    //your code:
}

2 个答案:

答案 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 setFullScreen() { }
public void setWindowMode() { }

包装器方法可能是:

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

简而言之,一种调用类中已有的另一种方法的方法。另一个示例是setResolution(w,h);和一个包装方法,调用setDefaultResolution(),然后调用setResolution(DEFAULT_W,DEFAULT_H)

答案 1 :(得分:0)

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