本帖最后由 胡国彬 于 2013-3-21 22:11 编辑
因为你外部有一个全局变量args,main方法里面还有一个局部变量args,一个方法里面,如果要调用参数的值,如果局部变量和全局变量重名,默认会调用局部变量.也就是在这里,调用的是main的参数args.如果你想要结果是4,很简单,只需要把main的参数args的名称改变,或者把全局变量的args的名称改变,结果就是4了.
另外,两个args虽然重名,但是是不同的对象,也就是在内存中是不同的地址
还有,外部的args相当于普通的变量,而main方法的args虽然可以和外部的变量一样用其他的名字命名,但是是有区别的,这个main方法的参数String[] args是在运行时由虚拟机自动初始化的,而且,main方法是用来接收运行时输入的参数的.比如你运行Test.class文件时,输入以下命令:
java Test you me
"you"和"me" 两个字符串就保存在args里面
测试:
在Hello.java加上输出args[]的代码
main(string args[]) {
System.out.println(args[0] +"\n" + args[1]
}
这个时候是可以打印出你输入的you 和me的 |