[英]Changing a variable value inside a void method to be used outside in Java?
[英]Changing a variable outside the scope of a method in Java
因此,我试图更改最小和最大猜测值(实际猜测由随机数生成器进行),以阻止程序两次猜测相同的数字。
我有一个可以猜测的方法,但也尝试设置一个最低和最高的猜测,当再次使用该方法时,它会发生变化
public static int takestab (int low, int high) {
int estimate;
estimate = (low + (int)(Math.random() * ((high - low) + low)));
if (estimate < number) {
lowestguess = estimate;
}
else if (estimate > number) {
highestguess = estimate;
}
return estimate;
}
另外,这些是我在方法范围之外的变量:
int lowestguess = 1;
int highestguess = 100;
因此,通过运行该方法,猜测可能为50,而实际数字可能为60。如果是这种情况,则“ lowestguess”将变为50,以便函数不能猜测任何低于50的数字。
当我以这种方式尝试时,cmd提示说它找不到匹配的符号。
有任何想法吗?
问题在于, lowestguess
是一个instance
变量,但是您尝试通过static
方法进行访问。
选件
通过最低猜测
例:
public static int takestab(int low, int high, Integer Lowest)
通过引用 ,这还允许您更改“最低”。
非静态方法
将方法更改为public int takestab(int low, int high)
将LowestGuess更改为静态
使用此选项时,在多线程环境中应格外小心。
看到:
最后,如果您在eclipse之类的IDE中进行编程,则会突出显示错误,从而使诸如此类的错误变得更加明显。
lowestguess
是一个实例变量,如果不创建实例就无法访问它。 如果要在static
方法中使用它,则可以创建类的实例,然后使用lowestguess
,或者如果有意义,则将lowestguess
设为static
。
不允许以static
方式使用non-static
成员的原因是,创建对象时会发生实例变量的内存初始化。 并且可以在不创建类实例的情况下调用static
方法。
static
方法只能使用静态成员(当然也可以使用局部变量)。 因此, highestguess
您的成员的lowestguess
和highestguess
声明为static
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.