黑马程序员技术交流社区

标题: 学习Java的错觉,args好神奇 [打印本页]

作者: 潇湘溪语    时间: 2013-11-12 22:23
标题: 学习Java的错觉,args好神奇
本帖最后由 潇湘溪语 于 2013-11-12 22:28 编辑

我是自学新人,问的可能有点小白…
在键入main函数的时候,public static void main(String[] agrs),一不小心把args弄错了,但后面的编程没有任何报错问题。我把args随便换成任意一个字母,都没有问题,请问这是什么原因啊?

作者: 低调的奢华    时间: 2013-11-12 22:43
arguments的缩写,只是一个默认名,一般习惯性的这么写。 表示命令行传进来的参数,主要作用是为程序使用者在命令行状态下与程序交互提供了一种手段,不必深究!
作者: 小痞痞    时间: 2013-11-12 23:00
public static void main(String[] agrs)
public公共的
static静态的
void表示没有返回值
main代表java的主函数被jvm所识别
String[]代表的是String数组
而args代表的是数组名     也就是变量名    可以为任意被jvm所识别的标识符
作者: zaneleo    时间: 2013-11-12 23:13
毕老师说的很清楚的,到视频去看年比问的效果要好的多
作者: heke    时间: 2013-11-12 23:36
public:代表着该函数访问权限是最大的。
static:代表着主函数随着类的加载就已经存在了
void:主函数没有具体的返回值
main:不是关键字,但是是一个特殊的单词,可以被jvm识别
(String[] args):函数的参数,参数类型是一个数组,该数组中的元素是字符串,存储字符串类型元素.args相当于string数组的名字,变量名可以改
jvm在调用主函数时,会传入 new String[0];        args jvm 会传个字符串数组,可以打印出来
作者: 潇湘溪语    时间: 2013-11-13 00:54
zaneleo 发表于 2013-11-12 23:13
毕老师说的很清楚的,到视频去看年比问的效果要好的多

不好意思啦,我是逐步来看视频的,发现问题在前,暂且没到毕老师那个版块…
作者: 潇湘溪语    时间: 2013-11-13 00:57
heke 发表于 2013-11-12 23:36
public:代表着该函数访问权限是最大的。
static:代表着主函数随着类的加载就已经存在了
void:主函数没有 ...

解释很详尽,等看到毕老师相应部分的视频,应该会更加明白了。多谢大吓解感,呵呵。
作者: 孙铮    时间: 2013-11-13 01:45
public static void main(String[] args)这句代码,你可以把它理解为程序的入口,保证程序的独立运行,被jvm调用.jvm(java虚拟机)会从这句话开始一条一条的执行你的代码,这就好比你要告诉jvm我的代码是从这里开始运行的.当然如果你只想写一个类封装对象的话也可以不写主函数,只有在要测试类的时候在写也可以.
如果把这句代码拆开来理解:
public:权限修饰符,表示权限最大,谁都可以访问
static:静态关键字,不需要对象,直接类名即可
void:主函数没有返回值
main:主函数特定的名称
至于楼主说的问题则是:
       main方法中有一个输入参数,类型为String[],这个也是java的规范,main()方法中必须有一个入参,类细必须String[],至于字符串数组的名字,这个是可以自己设定的,根据习惯,这个字符串数组的名字一般和sun java规范范例参数名保持一致,取名为args。传智的老师告诉我们因为java是老外发明的,他们也懒,所以把arguments简化成了args.




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2