我正在介绍Java类,我们应该将错误标记为语法,运行时或逻辑。
对于Java程序中的此示例,
int main(){
}
拼写为
int man(){
}
我确定这是语法错误,因为main拼写错误,并且语法要求它是main而不是man。但是,我的老师把它标了下来,并告诉我这是一个运行时,因为试图在int main()中运行代码。
我明白了,但我仍然很困惑。谁能帮我弄清楚为什么在int main()中拼写main不会是语法错误?
我肯定会问我的老师,但是要等到下周一。
答案 0 :(得分:3)
实际上,这是一个语法错误(更精确的是:编译时错误;该代码无法编译)。但这与main
是否是入口点无关。
类似
的方法int man() {
}
声明它返回int
。但是您的方法不会返回任何内容。
尝试在不使用return
语句的情况下编译代码,会出现如下编译时错误:
Foobar.java:23: error: missing return statement } ^ 1 error
它必须返回int
,例如:
int man() {
return 42;
}
main
作为入口点用作Java项目入口点的方法称为main
,并且必须具有以下签名:
public static void main(String[] args)
(变量名可以更改,也可以使用像String...
这样的 varargs 。)
但是,Java类不需要入口点。您可以编译类而无需任何public static void main(String[] args)
方法。您甚至可以在没有任何此类方法的情况下编译整个项目。
您的方法没有必需的签名,即使拼写正确的方法也是如此。是:
public
,static
,void
,String[]
。因此,编译器将其作为常规方法接受,根本不关心该名称。
答案 1 :(得分:0)
没有理由不能使用名为man()
的方法。main()
唯一的特别之处在于它是程序的入口点。您无法使用man()
在您的情况下,它不是public static void man(String[] args)
的事实表明这根本不是错误,只是一个名为man()
的方法