是否必须在setter方法中使用参数

时间:2011-04-26 23:40:31

标签: java

我正在尝试编写一种方法来设置机架的长度。

我不确定是否必须将长度变量作为参数放在方法

public class Rack {
    int racklength;


    public Rack(int racklength){
        racklength=racklength;
    }
    public int setRackLength(){
        return racklength;
    }
}

3 个答案:

答案 0 :(得分:1)

是的,你这样做。设置内容时,需要传入要设置内部值的外部值。否则,你怎么设置它?所以你的代码应该是这样的:

public Rack(int racklength) {
    this.racklength = racklength;
}

public void setRackLength(int racklength) {
    this.racklength = racklength;
}

当参数与成员变量同名时,您需要使用this限定符来告诉编译器哪个是成员变量,哪个是参数。或者,您可以将参数命名为else:

public void setRackLength(int length) {
    racklength = length;
}

答案 1 :(得分:1)

当参数和类变量共享同一个名称时,您可以使用“this”。引用类变量。另外,将setRackLength的名称更改为getRackLength

public Rack(int racklength){
   this.racklength = racklength; 
}
public int getRackLength() { return rackLength; }
public void setRackLength(int rackLength) {
   this.racklength = racklength; 
}

答案 2 :(得分:0)

根据定义,setter方法应该有一个参数来将值设置为:

public void setProperty(PropertyType property) {
    this.property = property;
    // here this.property means the property that belongs to the instance, ie, 'this'
}

拥有一个没有参数的“setter”并没有任何意义。