我之前没有注意到,直到void
无意识地错位main
。
public static main void (String[] args){
}
为什么会给我一个错误?
答案 0 :(得分:9)
method syntax(由Java语言规范指定)强制要求:
MethodDeclaration:
MethodHeader MethodBody
MethodHeader:
MethodModifiers (opt) TypeParameters (opt) Result MethodDeclarator Throws (opt)
MethodDeclarator:
Identifier ( FormalParameterList (opt) )
简要概述:
方法声明由方法标题和方法体组成。
方法标题包含修饰符(可选,类型参数(也是可选的),结果(原始类型,void
或其他Object
),以及方法声明器。可以提供抛出(也是可选的)。
方法声明器由某种标识符组成;这通常被描述为具有任何形式参数(如果有的话)的方法的名称。
让我们将其应用于main
的有效声明:
public static void main (String[] args)
^ ^ ^ ^ ^
modifiers result identifier parameter list
如果你改变了订单(让我们以你的例子为例),那你就结束了这个:
public static main void (String[] args)
^ ^ ^ ^ ^
modifiers result identifier parameter list
等一下。 main
不是有效的结果。并且void
不是有效的标识符(这是两个中更令人震惊的错误;保留字can't be used as identifiers)。
这就是订单重要的原因; Java有意解析元素的顺序,看它们是否具有语法意义。引入与订单无关的声明对于阅读代码的任何人来说都会非常混淆,并且可能会违反长期持有的方法声明惯例。
答案 1 :(得分:1)
基本上,您正在尝试创建一个名为void
的方法,其中输出类型为main
。
这根本无效。使用main
交换void
。
如果您需要有关定义方法的更多信息,请尝试java tutorials。它们中的方法签名有详尽的解释。
答案 2 :(得分:0)
更一般地说,方法声明按顺序有六个组件:
修饰符:指定方法对外人可见的方式
例如public(对所有人都可用)private(仅在class内可用),以及其他类似static。
返回类型 - 方法返回的值:如果方法返回10,那么我们可以使用int作为返回类型。如果方法没有返回值,则为void。
方法名称 - 我们可以给予的方法的名称,但是主要的。它应该是主要的,因为它将由JVM自动调用。
括号中的参数列表 - 以逗号分隔的输入参数列表,以其数据类型开头,括在括号中,()。如果没有参数,则必须使用空括号。
使用throw关键字在方法名称后添加的例外列表。
括在括号之间的方法体 - 方法的代码,包括局部变量的声明,就在这里。
了解更多信息,请点击此处 java methods