public class Planet {
double x;
double y;
double xV;
double yV;
double mass;
double imgName;
public Planet (double x; double y; double xV; double y; double mass; double imgName;) {
this.x = x;
this.y = y;
this.xV = xV;
this.yV = yV;
this.mass = mass;
this.imgName = imgName;
}
public static void main(String[] args) {
return 0;
}
}
Planet.java:8:')'预期
Planet.java:8:非法启动类型
Planet.java:8:&#39 ;;'预期
Planet.java:9:非法启动类型
Planet.java:9:预计
Planet.java:9:';'预期
Planet.java:9:非法启动类型
...
Planet.java:16:类,接口或枚举预期的public static void main(String [] args)
Planet.java:18:期望的类,接口或枚举}
我看到了不同类型的错误!任何人都可以一个一个地向我解释,因为它太烦人了。
答案 0 :(得分:7)
您没有正确声明参数。使用:
public Planet (double x, double y, double xV, double y, double mass, double imgName)
此外,main
不应返回0.如果要返回系统退出代码,请使用System.exit(0)
。只需从主要方法返回(使用return;
或到达结尾)将类似于来自C等主要语言的return 0;
。
错误太多的原因是Java解析器/编译器的工作方式。第一个错误已经是一个错误的状态,因此以下错误只是编译器的混淆" confused"。
编译/语法错误的一个实际经验法则是专注于修复给定的第一个错误,因为解析文件的其余部分可能会受到影响。强>
虽然我不是100%肯定,但我相信以下情况发生了:
)
错误,并结束语句(事实上,然后结束构造函数)。)
是非法类型,并且还需要分号。this.x = x
是构造函数的一部分,但前一行混淆了解析器,所以它认为它在类范围内工作(不在方法中)。它无法解析this.x = x
因为this.x
不是有效类型,而且这个"字段"没有名字。在这一点上,很明显以前的错误已经搞砸了解析器状态,足以开始恐慌它现在认为不合适的有效语句。}
时,它结束了类范围。以下主要方法和最终结束}
同样是不可解析的,并导致发出错误(因为此时这些元素不在类中)