我最近开始了我的软件工程教育,我们目前正在学习 Java 的基础知识...我们必须创建一个简单的基于文本的机场游戏,但我遇到了一些麻烦。
我已经尝试过google和SOF搜索功能,但发现了很多“解决方案”;似乎没有一个能解决我的问题。所以请原谅我的“菜鸟”疑问: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;
}
}
编辑:
return this.paxGenerator = (int) (Math.random() * 900) + 100;
确实解决了我的问题,thx @user43219 但是,为了学习;有人可以给我一个例子,说明我应该如何正确实现 if else 语句吗?因为我想创建 12 个新对象,所以它们都必须生成不同的随机数。如果我将随机代码放在 getter/setter 之外,它每次都会给我相同的数字...并且 if else 语句甚至不允许在 getter/setter 之外...请记住,我是一个初学者,所以事情对我来说并不那么明显:P 提前谢谢!
最佳答案
您没有调用您的二传手。该行:
return this.paxGenerator = (int) (Math.random() * 1000);
是否不隐式调用setPaxGenerator()
- 它绕过setter并直接设置属性值。
关于java - if/else if 内部 getter/setter Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33371320/