Setters可以有多个参数吗?如果它有用吗?

时间:2013-12-19 12:12:06

标签: java javabeans

他们中的大多数都像“setX()& getX()”中的X一样思考。(我的意图是取代X,你可以拿任何名字)
以下是我的代码:

public int getX() {
    return ---;

}  
public void setX(some X ,some Y)
{   
}

我怀疑的是,如何设置setX()的两个值。我怎样才能获得这些价值观。有可能吗?

4 个答案:

答案 0 :(得分:1)

Setter通常是指一个设置一个类变量值的方法。所以它只需要一个参数。如果你想要一个设置两个类变量值的方法,你当然可以这样做,但这通常不是setter的意思。

根据OP提出的其他问题,我认为他需要这样的事情。

    public class Test001 {

        private int x;

        private int y;

        public int getX() {
            return x;
        }

        public void setX(int x) {
            this.x = x;
        }

        public int getY() {
            return y;
        }

        public void setY(int y) {
            this.y = y;
        }

        public void setXY(int x, int y) {
            setX(x);
            setY(y);
        }

        public int[] getXY() {
            return new int[] { x, y };
        }

    }

答案 1 :(得分:0)

通常我们使用setter作为类变量的设定值。这是一种常见的用法。但是如果你想解析两个值(两个参数),你可以解析,因为setter也是一个方法。

public int[] getXY() {
    return new int[]{x,y}; // return both x and y

}

public void setXY(int x, int y) {  // set both x and y
    this.x = x;  
    this.y = y;
}

答案 2 :(得分:0)

Setter是指设置一个实例变量的值(约定); 不是类变量,正如之前的一些评论所说的那样。实例和类变量之间存在差异。惯例是为每个需要访问或设置的实例变量设置一个setter。这是一个概念,如果封装了一个类的属性,从而保护对类的属性或运行时的对象的访问免受程序中其他对象的影响。

使用getter获取这些属性的值。

答案 3 :(得分:0)

如果您将方法命名为setX并设置Y,那么很快就会出现一些混乱(错误)。你可以使用的一件事

public void setXAndY(some X, some Y) { // not recommended
    this.X = X;
    this.Y = Y;
}

关于获取多个值要么使用数组,要么使用List。

public some[] getXAndY() {
    return new some[]{ this.X, this.Y };
}