1、main方法是什么
某个类中有main()方法,说明这是一个java应用程序,可以直接启动运行的程序(操作系统中安装了jdk或者jre)。任何一个非抽象类/接口都可以添加main()方法。
了解抽象类、接口看这里:接口和抽象类有什么区别
在java的规范中,main()方法的声明为:
public static void main(String args[]){
}
当通过java运行工具运行某个类时:java 类名,jre会运行类中的main()方法。在运行这个Java应用程序的时候,首先会调用main方法,由于main方法是public static,所以调用时不实例化这个类的对象,而是通过类名直接调用。
了解public、private看这里:public、privite、protected有什么区别
对于main有以下几点需要注意:
- 对于java中的main方法,由于规范中main的返回值类型为void,所以main方法不能有返回值。
- main方法的输入参数,类型为String[],规范中main()方法中必须有一个入参String[],当然参数的名字是可以自己设定的。根据习惯,这个字符串数组的名字一般和规范范例中mian参数名保持一致,取名为args。
- main(String[] args)方法的参数args可以在运行时指定,例如:java TestMain 1 2 3,则args为[1,2,3]。
- main方法中可以通过throws Exception声明抛出异常,如果发生异常,则会直接抛在运行工具中(运行工具一般会将错误日志打印到console)。
- 带有main方法的类同普通类一样,执行main之前也会先执行类的静态代码块static{}。
结合以上几点的一个例子:
public class TestMain {
static {
System.out.println("Hello Wordld");
}
public static void main(String[] args) throws Exception {
if (args.length > 0) {
for (String arg : args) {
System.out.println("args:" + arg);
}
}
if (args.length <= 0) {
throw new Exception("Exception");
}
}
}
执行“java TestMain”结果如下:
Hello Wordld
Exception in thread “main” java.lang.Exception: Exception
at com.test.TestMain.main(TestMain.java:16)
执行“java TestMain 1 2 3”结果如下:
Hello Wordld
args:1
args:2
args:3
时间: 2024-10-05 04:42:57