构造函数和方法

时间:2016-05-28 10:31:26

标签: java

对于我的项目,我有一个问题,说newGenerationNumber是一个整数。如果作为参数传递的参数小于零,则将generationNumber实例变量设置为零。否则将newGenerationNumber分配给generationNumber实例变量。我对如何开始这个很困惑。我的代码是我的 私有int generationNumber

然后我做了一个if

If (generationNumber >0)  
 generationNumber = generationNumber

如果这是对的,我很困惑,如果我需要做一个其他的

4 个答案:

答案 0 :(得分:0)

generationNumber = newGenerationNumber;
if (generationNumber < 0) {
    generationNumber = 0;
}

否则它会保持原样

答案 1 :(得分:0)

if...else在这里是个不错的选择,但不是唯一的选择。

int generationNumber;

public Guppy (int newGenerationNumber) {
    if (newGenerationNumber > 0) {
        generationNumber = newGenerationNumber;
    } else {
        generationNumber = 0;
    }
}

Instance int primitives默认值为0。这意味着您可以离开else部分,只检查它是否为正。

答案 2 :(得分:0)

它表示 new GenerationInstance参数(参数)是否小于0.

所以我可能会使用条件运算符(x ? y : z):

public Guppy(int newGenerationInstance) {
    this.generationInstance = newGenerationInstance < 0 ? 0 : newGenerationInstance;
}

或者如果您愿意,可以使用if / else

public Guppy(int newGenerationInstance) {
    if (newGenerationInstance < 0) {
        this.generationInstance = 0;
    } else {
        this.generationInstance = newGenerationInstance;
    }
}

答案 3 :(得分:0)

对于简单的解决方案,我会编写如下代码

public class NewNumberGenerationClass {
//instance variable because you can access this with the instance of the class
private int NewGenerationNumber;
public NewNumberGenerationClass(int i){
    setNewGenerationNumber(i);
}
//setting value before getting it
public void setNewGenerationNumber(int i)
{
    if(i < 0)
    {
        this.NewGenerationNumber = 0;
    }
    else
    {
        this.NewGenerationNumber = i;
    }
}
//access vaule using get method
public int getNewGenerationNumber()
{
    return this.NewGenerationNumber;
}
   public static void main(String[] args){
       NewNumberGenerationClass s = new NewNumberGenerationClass(-5);
       NewNumberGenerationClass s1 = new NewNumberGenerationClass(5);

       System.out.println(s.getNewGenerationNumber());
       System.out.println(s1.getNewGenerationNumber());
   } 

}