java day005 main入口函数中的String[] args 是什么??你知道吗??

42 篇文章 1 订阅
42 篇文章 1 订阅

java day005 main入口函数中的String[] args 是什么??

初学Java就有一个很深的疑惑,为什么Java的入口函数这么长一大串???一直放那不管就会一直有疑惑,所以通过搜索、查阅总算知道了点东西,下面总结一下。

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

public 公开的,表示main函数可以被其他的类访问;

static 静态的,表示main是一个静态方法,不需要实例化便可使用。一般来说,要运行一个类的方法,需要先创造一个类的对象,通过"对象名.方法名()"来运行方法,但是因为main是入口函数,无法先创造对象,所以声明为static,这样就可以直接通过"类名.方法名()"的方式调用。

void 表示main方法无返回值类型。

String[] args 是什么?

string[]是字符串数组类型,而args是字符串数组变量名。

args是arguments简写,用来存储命令行参数,一般来讲我们在main方法中用不上这个参数,但是它是必须的。

示例

/*
入口函数初解析
*/
class ArgsTest {
	public static void main(String[] args) {
		
		System.out.println("Hello World!");
		
		for (int i = 0; i < args.length; i++) {
			System.out.println(args[i]);
		}
	}
}
/*
输出结果:
D:\MyJavaCode\java day005 自学入口函数>java ArgsTest
Hello World!

D:\MyJavaCode\java day005 自学入口函数>java ArgsTest 1 11 1
Hello World!
1
11
1

D:\MyJavaCode\java day005 自学入口函数>java ArgsTest hello world
Hello World!
hello
world

D:\MyJavaCode\java day005 自学入口函数>java ArgsTest 哈喽 我的
Hello World!
哈喽
我的

D:\MyJavaCode\java day005 自学入口函数>java ArgsTest 1111111111111111
Hello World!
1111111111111111

*/

可以看出,我们在编译后得到ArgsTest.class文件,可以使用java ArgsTest 参数1 参数2 参数3的方式向ArgsTest 类传递数据。

那么我们不加这个形参会怎么样?

示例

/*
入口函数初解析 不加形参
*/
class ArgsTest2 {
	public static void main() {
		
		System.out.println("Hello World!");
		

	}
}

/*
输出结果:
D:\MyJavaCode\java day005 自学入口函数>java ArgsTest2
错误: 在类 ArgsTest2 中找不到 main 方法, 请将 main 方法定义为:
   public static void main(String[] args)
否则 JavaFX 应用程序类必须扩展javafx.application.Application


*/

可以看出如果不加String[] args这个形参是不行的,会报错。

那么 args 能改吗? 是可以改的。

/*
入口函数初解析
*/
class ArgsTest1 {
	public static void main(String[] akk) {
		
		System.out.println("Hello World!");
		
		for (int i = 0; i < akk.length; i++) {
			System.out.println(akk[i]);
		}
	}
}
/*
输出结果:
D:\MyJavaCode\java day005 自学入口函数>javac ArgsTest1.java

D:\MyJavaCode\java day005 自学入口函数>java ArgsTest 333 444
Hello World!
333
444
*/

我们会发现当改变main方法中的args时,编译其实不会出错并且程序也能顺利运行。args只是大家约定俗成这么写而已,为了避免歧义与误读。

总结

  1. string[] args是main方法的形参,用来传递命令行参数。

  2. args只是变量名,可以改变。(但是大家一般都默认为args)。

  3. main方法括号中不能不加String[] args,否则程序会报错,这是一个规定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值