Java 公共静态 void main(String[] args)


JVM 调用 main() 方法时,Java 程序开始执行。Java 应用程序从此方法开始。如果没有 main 方法,Java 文件将成功编译,因为在编译时,编译器不会检查 main 方法,但在运行时,JVM 会检查 main() 方法是否存在。因此,我们将在运行时获得异常。

在本文中,我们将了解为什么遵循“public static void main(String[] args)”约定。

语法

public class class_name {
   // This line must be written as it is
   public static void main(String[] args) {  
      // code will be wriiten here
   }
}

示例 1

public class Tutorialspoint {
   public static void main(String []args) {
      System.out.println("Hello, you are on tutorials point");
   }
}

输出

Hello, you are on tutorials point

在我们的 Java 文件中,至少应该有一个公共类。按照惯例,main 方法必须在类中定义,因为所有内容都位于 Java 中的类 内部。这表明 Java 是一种面向对象 的语言。

在上面的示例中,类“Tutorialspoint”包含 main() 方法。让我们讨论 main() 方法的各个部分:

public

public 是一个访问修饰符,用于定义变量和方法的可见性或可访问性。使用 public 关键字定义的 变量方法 对任何类和包都是可访问的。前面我们已经讨论过 JVM 调用 main() 方法,并且它不位于当前类中。因此,main() 方法声明为 public,以便我们可以全局或从任何地方访问它。

如果我们不使用 public 关键字与 main() 方法一起使用会怎样?

示例 2

public class Tutorialspoint {
   static void main(String []args){
      System.out.println("Hello, you are on tutorials point");
   }
}

输出

Error: Main method not found in class Tutorialspoint, please define the main method as:
   public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application

我们收到错误,因为 JVM 无法找到 main() 方法。

static

通常,我们通过创建其类的对象来调用方法,但静态方法可以在不使用对象的情况下调用。JVM 在创建任何对象之前调用 main() 方法,因此我们需要将其声明为 static。

示例 3

内置类 Math 的大多数成员都是静态的。我们可以直接使用它们,而无需创建其对象。

public class Main {
   public static void main( String[] args ) {
      double x = 6.55;
      double y = 4.32;
      System.out.println(" Ceil value of x: " + Math.ceil(x) );
      System.out.println(" Floor value of y: " + Math.floor(y) );
   }
}

输出

 Ceil value of x: 7.0
 Floor value of y: 4.0

上面的示例说明了 Math 类静态方法 ceil() 和 floor() 的用法。我们可以看到,我们在程序中直接使用了它们,而无需创建 Math 类的任何对象。

让我们看看如果我们不将 main() 方法声明为 static 会发生什么。

示例 4

public class Tutorialspoint {
   public void main(String []args){
      System.out.println("Hello, you are on tutorials point");
   }
}

输出

Error: Main method is not static in class Tutorialspoint, please define the main method as:
   public static void main(String[] args)

JVM 无法调用以上代码。

void

返回值类型 void 表示该方法不返回任何内容。在 Java 中,main() 方法是程序的入口点和出口点。当 main() 方法完成执行时,Java 程序 也结束执行。如果我们提供任何返回值类型(如 int 或 double),则它将在编译时抛出错误。

让我们通过一个例子来理解:

示例 5

public class Tutorialspoint {
   public int main(String []args){
      System.out.println("Hello, you are on tutorials point");
   }
}

输出

Tutorialspoint.java:4: error: missing return statement
    }
    ^
1 error

这是一个编译时错误。编译器要求返回语句,但它对 JVM 无用。

main()

main 是方法的名称,不要将其误认为是关键字。它始终写成“main”。

String[] args

String[] args 是一个参数,它接受 String 类型的参数。它允许我们通过终端传递参数,并将这些参数存储在字符串数组中。我们可以说 String[] args 是一个命令行参数。

示例 6

此示例将说明如何从终端将参数传递到 Java 文件。

public class Arg {
   public static void main(String []args){
      // for each loop to print argument taken from terminal
      for(String arg : args) {  
         System.out.println(arg);
      }
   }
}

输出

要从终端编译代码,请键入命令:javac Arg.java

要从终端运行代码,请键入命令:java Arg “Your String”

PS D:\Java Programs> java Arg "Hello, You are on Tutorials Point"
Hello, You are on Tutorials Point

结论

在本文中,我们讨论了 Java 程序以了解“public static void main(String[] args)”的用法。我们还讨论了如何使用参数“String[] args”从终端获取输入。

更新于: 2024-06-21

7K+ 次浏览

启动您的 职业生涯

通过完成课程获得认证

开始
广告
© . All rights reserved.