我创建了一个小型Java应用程序来自动测试某些表达式的真/假条件.
我在jGRASP和javac命令中都遇到了两个编译器错误.
代码如下:
public class MathTest { public static void main(String[] args) { int x = 10; int y = 20; int z = 30; String string1 = "six"; String string2 = "six"; if (x < 10 || x > 10) System.out.print("True"); else System.out.print("False"); if (z - y == x && Math.abs(y - z) == z) System.out.print("True"); else System.out.print("False"); if (x < 10 && x < 10) System.out.print("True"); else System.out.print("False"); if (string1.equals(string2)) System.out.print("True"); else System.out.print("False"); if (x > y || y > x) System.out.print("True"); else System.out.print("False"); if (!(x < y + z) || !(x + 10 <= 20)) System.out.print("True"); else System.out.print("False"); if (string1 == string2) System.out.print("True"); else System.out.print("False"); } }
错误消息是:
MathTest.java:14: cannot find symbol symbol : method abs(int) location: class Math if(z - y == x && Math.abs(y - z) == z) ^ ./Math.java:13: cannot find symbol symbol : method abs(int) location: class Math if(z - y == x && Math.abs(y - z) == z) ^ 2 errors
我究竟做错了什么?
在极少数情况下,我的导师或盐湖社区学院的任何管理员都遇到过这个问题,让我明确表达我的意图.这个问题是以最大的学术诚信精神张贴的.我要求这个问题寻求一般性的建议,并帮助理解使用Java编程语言的正确方法.我绝不会使用他人的作品,而是把它当作我自己的作品.我使用这里提供的答案作为我理解的一般帮助.我做自己的所有工作,不复制回答我的问题的人提供的工作.
你有一个Math类,并且你正在尝试使用abs()方法.
问题是:你是打算提供这个函数还是试图在java.lang.Math中使用它?
首先,你必须确保你宣布这个功能.
第二,你必须确保使用正确的参数类型; 看数学.
你的Math类有abs方法吗?
看起来你的Math类正在影响语言核心中的Math类.
您的Math类已加载,无法找到abs方法(因此"无法找到符号"消息)
如果您希望程序使用Java的Math.abs(而不是您编写的Math类中的abs()方法),您可以说:
if(z - y == x && java.lang.Math.abs(y - z) == z)
......这不是很漂亮.一般来说,尽量不要将类命名为java.lang(或java.anything,真的)中的类.