gpt4 book ai didi

java - boolean 方法麻烦

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:40:22 28 4
gpt4 key购买 nike

我正在尝试实现一种返回 boolean 值 true 或 false 的方法。该方法根据 if 和 else 语句将 boolean 值 isMatch 初始化为 true 或 false。

public class BooleanTest {
int num;
boolean isMatch;

public BooleanTest() {
num = 10;
}

public boolean isMatch() { //variable is already initialize to 10 from constructor
if (num == 10)
isMatch = true;
else
isMatch = false;
return isMatch;
}

public static void main(String[] arg) {
BooleanTest s = new BooleanTest();

System.out.println(s.isMatch);
}
}

isMatch 的输出应该是 true,但我得到的输出是 false。我的 boolean 方法是否错误,我该如何解决?感谢您的帮助。

最佳答案

首先,您的整个 isMatch 方法最好折叠为:

public boolean isMatch() {
return num == 10;
}

其次,除非您要更改 num 的值,否则您现有的代码确实 工作。您应该查看用于将输出显示为 false 的任何诊断...我怀疑它们在误导您。您是否有可能打印出名为 isMatch字段 的值,而不是调用该方法?这样就可以解释了。这就是为什么使用与字段同名的方法不是一个好主意的原因之一。此外,我建议将您的字段设为私有(private)。

显示工作方法调用和“失败”字段访问的简短但完整的示例(工作正常,但没有按照您的意愿进行):

public class BooleanTest {
private int num;
private boolean isMatch;

public BooleanTest() {
num = 10;
}

public boolean isMatch() {
return num == 10;
}

public static void main(String[] args) {
BooleanTest test = new BooleanTest();
System.out.println(test.isMatch()); // true
System.out.println(test.isMatch); // false
}
}

老实说,您根本不清楚为什么要有该字段 - 我会删除它。

关于java - boolean 方法麻烦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15623283/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com