我正在参加我的工作批准的一些Lynda.com课程,并希望学习一些Java。有人可以告诉我为什么我的Round和Absolute功能会出错吗?
我看到的错误是'无法解决方法圆(双)'。我得到绝对值相同的错误。我正在做的就是复制教练给我的东西。
我只是做一些简单的数学计算:
public class Math {
public static void main(String[] args) {
int intValue1 = 56;
int intValue2 = 42;
int result1 = intValue1 + intValue2;
System.out.println("Addition: " + result1);
int result2 = intValue1 - intValue2;
System.out.println("Subtraction: " + result2);
int result3 = intValue1 * intValue2;
System.out.println("Multiplication: " + result3);
double result4 = (double) intValue1 / intValue2;
System.out.println("Division: " + result4);
int result5 = intValue1 % intValue2;
System.out.println("Remainder: " + result5);
double doubleValue = -3.999999;
long rounded = Math.round(doubleValue);
System.out.println("Rounded: " + rounded);
double absValue = Math.abs(doubleValue);
System.out.println("Absolute: " + absValue);
}
}
如果我没有正确执行代码标签,也请告诉我?
问题是你的类被称为Math
,所以编译器正在你的类上寻找一个方法round()
,它不存在。
将您的类重命名为MyJavaLesson
或某些,然后编译器将知道您需要来自java.lang.Math
的方法。
你永远不应该在java
包下用任何名称命名你自己的类,因为它通常会导致混淆(就像它在这里一样)。
看看是否将double doubleValue
替换为float doubleValue
可以帮助你.Math.round()
函数将浮动视为其争论。别忘了在浮点数赋值之后添加f
,即float doubleValue = -3.999f
。
这里的主要问题是这个类名为Math(在最顶层:公共类Math {)。这会覆盖java提供的Math工具包。如果你把你的类命名并归档为其他东西,它应该没问题。附:通常按照惯例,我们不在类和文件名中使用大写字母;避免这些发生。
谢谢大家的帮助。此外,不确定在这个论坛上是否允许提出这个问题,但只是好奇其他人如何学习Java?我正在考虑在社区大学上课,但想知道我是不是更好地从Lynda.com,Udemy和Coursera学习。