正确的main方法语法

时间:2013-09-18 07:17:03

标签: java

这是一个初学者问题。我是java新手,一直在浏览StackOverflow和CodeReview。我发现使用了这两种不同的格式:

example 1

public static void main(String args[])


example 2

public static void main(String[] args)

这就是我在课程笔记中的内容:

  

这些词被称为修饰语。 main()方法前面还有单词void,表示它不返回任何值。 main()方法总是有一个可以传递给程序的命令行参数列表

     

main(String [] args)

     

我们暂时不理会。

所以,正如你所看到的,我们被告知现在忽略这一点,但我想知道:

这些之间是否存在实际差异,如果有,是什么?

4 个答案:

答案 0 :(得分:8)

来自Java Language Specification

  

[]可以在声明开头作为类型的一部分出现,也可以作为特定变量的声明者的一部分,或两者兼而有之。

     

例如:

byte[] rowvector, colvector, matrix[];
     

此声明相当于:

byte rowvector[], colvector[], matrix[][];

答案 1 :(得分:4)

实际上,两个main-method定义之间没有区别,两者都是正确的。

但按照惯例,java首选数组声明为String[] args而不是String args[]

所以它更传统 -

public static void main(String[] args){...}

答案 2 :(得分:4)

main方法接受String数组中的参数 接受以下方式

public static void main(String args[])
public static void main(String []args)
public static void main(String... args)

答案 3 :(得分:1)

所有这些都是Java中main函数的有效声明。

public static void main(String[] args) {
    // code
}

static public void main(String[] args) {
    // code
}

static public void main(String args[]) {
    // code
}

public static void main(String[] MarkElliotZuckerberg) {
    // code
}

public static void main(String... NewYork) {
    // code
}
  • 关键字public和static是可互换的,但是必须的。
  • main方法的参数可以采用var-args语法。
  • 这个名字可以是任何东西..!

这些是无效的主要方法声明的示例 -

static void main(String[] args) {
    // public is missing
}

public void main(String args[]) {
    // static is missing
}

public static int main(String... Java) {
    // return type not void

    return 0;
}

public void Main(String args[]) {
    // "main" not "Main"
}

public void main(string args[]) {
    // "String" not "string"
}

public void main(String.. SayHi) {
    // Ellipses is 3 dots !
}

对不起,如果源代码不太可读......我总是在发布源代码时遇到麻烦......:P ...希望这有帮助......!如果有,请通过评论告诉我..!

来源 - Java Tutorials on Theory of Programming