if/else if在getter/setter Java中

if/else if在getter/setter Java中,java,Java,我最近开始了我的教育软件工程,我们目前正在学习Java的基础知识。。。我们必须创建一个简单的基于文本的机场游戏,我遇到了一点麻烦 我已经尝试过谷歌和软件搜索功能,但发现了许多“解决方案”;似乎没有人能解决我的问题。所以请原谅我的“noob”理由:P 在这个游戏中,我们有几个机场,每轮生成随机数量的乘客,最少100人,最多999人。为此,我使用了以下代码。。。这是可行的,不会给我任何错误,但我仍然会得到100以下的随机结果。我做错了什么?就像我说的,我尝试了很多不同的方法,但它似乎忽略了我的if/

我最近开始了我的教育软件工程,我们目前正在学习Java的基础知识。。。我们必须创建一个简单的基于文本的机场游戏,我遇到了一点麻烦

我已经尝试过谷歌和软件搜索功能,但发现了许多“解决方案”;似乎没有人能解决我的问题。所以请原谅我的“noob”理由:P

在这个游戏中,我们有几个机场,每轮生成随机数量的乘客,最少100人,最多999人。为此,我使用了以下代码。。。这是可行的,不会给我任何错误,但我仍然会得到100以下的随机结果。我做错了什么?就像我说的,我尝试了很多不同的方法,但它似乎忽略了我的if/if-else条件

int paxGenerator;

public int getPaxGenerator() {
    return this.paxGenerator = (int) (Math.random() * 1000);

}

public void setPaxGenerator(int paxGenerator) {

    if (paxGenerator<100) {
        this.paxGenerator = 100;
    } else if (paxGenerator > 999) {
        this.paxGenerator = 999;
    }

}
intpaxgenerator;
public int getPaxGenerator(){
返回this.paxGenerator=(int)(Math.random()*1000);
}
公共无效设置paxGenerator(int paxGenerator){
如果(paxGenerator 999){
this.paxGenerator=999;
}
}
编辑:

返回this.paxGenerator=(int)(Math.random()*900)+100
确实解决了我的问题,thx@user43219但是,为了学习;有人能给我举个例子,说明我应该如何正确地实现if-else语句吗?因为我想创建12个新对象,它们都必须生成不同的随机数。如果我把随机码放在getter/setter之外,它每次都会给我相同的数字。。。if-else语句甚至不允许出现在getter/setter之外。。。请记住,我是一个初学者,所以事情对我来说并不那么明显:P thx提前

如果“楼层”有100名乘客,我个人会避免所有复杂的逻辑,只使用
this.paxgenerator=(int)(Math.random()*900)+100


(int)(Math.random()*x)
将生成从0到x-1的数字。

您没有调用setter。该行:

return this.paxGenerator = (int) (Math.random() * 1000);

不隐式调用
setPaxGenerator()
-它绕过setter并直接设置属性值。

您可以使用
随机

Random rand = new Random();

 int randomNum = rand.nextInt((999 - 100) + 1) + 100;

  System.out.println(randomNum);

试着分析你的getter做了什么,这就是你出错的地方。为什么每次调用getter时,当你也有一个setter时,getter都会生成/分配一个值?你可以研究一下,你能提供一个完整的代码吗?仅供参考-将逻辑放入getter和setter中不是好的做法。将逻辑置于getter/setter之外,然后调用它们。使用getter和setter只是为了分配和检索数据。虽然这正好回答了您的问题,但我想补充一点,您不应该在这种程度上滥用getter和setter。-getPaxGenerator应该是幂等的,也就是说,无论您多久读取一次,都希望该值保持不变。-setPaxGenerator应将该值设置为您传递给它的值(如果该值无效,则引发异常)。其他任何东西都会使使用您的代码的其他人感到困惑。在您的例子中,只需创建一个名为generatePax()的方法,并将所有随机生成代码放在其中。