【问题标题】:Java - public static void main()Java - 公共静态 void main()
【发布时间】:2010-03-21 06:28:54
【问题描述】:

对于 Java 的 main 方法,我应该按照特定的顺序编写以下内容吗?

public static void main()

换句话说,我可以按任何顺序重新洗牌 public、static、void 吗?

为什么或为什么不?

【问题讨论】:

  • 您以非常快的速度连续问了很多这样的问题。我鼓励您阅读 Java 语言规范 (java.sun.com/docs/books/jls/third_edition/html/j3TOC.html),它将回答许多此类问题。对您的编译器进行一些实验也会很有用。
  • @John Feminella - 很高兴看到有人能够认识到 OP 提出了许多本质上是介绍性的问题,但不知何故能够承受幼稚的冲动,做出尖酸刻薄、自以为是的评论.您的评论优雅而有帮助 - 太棒了!
  • @John:谢谢你的建议。会做的。

标签: java


【解决方案1】:

void 是返回类型,所以它必须放在最后。其他的可以改组(更多细节请参见section 8.4 of the Java Language Specification),但按照惯例,访问修饰符通常在大多数其他方法修饰符之前,除了通常先出现的注释(同样,只是按照惯例)。

【讨论】:

  • JLS 8.4.3: "如果两个或多个(不同的)方法修饰符出现在方法声明中,尽管不是必需的,但习惯上它们的出现顺序与所示一致: " 注解publicprotectedprivateabstractstaticfinalsynchronizednativestrictfp
【解决方案2】:

我们可以写,我们可以互换staticpublic

static public void main(String args[])

static public void main(String... args)

但是你不能用任何位置重新调整返回类型,例如

public void static main(String[] args) // is wrong

还有

static void public main(String[] args) // is also wrong

【讨论】:

  • 快速java问题,你能在没有String args[]String... args的情况下做static public void main()吗?还是一般不鼓励这样做?
【解决方案3】:

main 的签名必须是:

公共静态无效主要(字符串[]参数){ // 这里插入代码 }

但是,不要求将一种方法放在另一种方法之前。它们可以按您喜欢的任何顺序排列。此外,Java 使用两遍机制,因此即使您在“主”方法中使用了其他方法,该方法实际上也可以稍后出现在文件中。由于 Java 采用了这种多通道方法,因此不需要像 C 和 C++ 中那样进行前向声明。

修饰符 public 和 static 可以洗牌;但是,按照惯例,总是首先给出访问修饰符(public、private、protected),然后给出 static 和/或 final(如果适用),然后是返回类型。

【讨论】:

  • 你很困惑。他在询问“public”“static”“void”和“main”的顺序
  • @Kevin,是的,我明白了。我现在都回答了。
【解决方案4】:

您可以轻松地尝试各种排列,看看哪些方法有效,哪些无效。一方面,如果您不将main() 更改为main(String[] args),它们都将不起作用。除此之外,publicstatic可以以任何顺序出现的修饰符,但是大多数代码样式​​约定无论如何都有规定的顺序。 void 必须直接在方法名之前,因为它是返回类型,而不是修饰符。

【讨论】:

    【解决方案5】:

    简而言之,不,你不能 方法名称应立即以方法的返回类型作为前缀。这是方法签名的一部分。不过,首先使用访问说明符是惯例。

    【讨论】:

      猜你喜欢
      • 2012-11-06
      • 2016-02-23
      • 2013-11-12
      • 1970-01-01
      • 2019-08-20
      • 1970-01-01
      • 2019-06-21
      • 2010-10-19
      • 2013-12-17
      相关资源
      最近更新 更多