黑马程序员技术交流社区
标题:
关于主函数的问题?
[打印本页]
作者:
杨芳
时间:
2013-2-23 13:26
标题:
关于主函数的问题?
class MainDemo
{
public static void main(String[] args) //new String[]
{
String []arr={"hah","hhe","heihie","xixi"};
MainTest.main(arr);
System.out.println(args.length);//这里为什么会打印0,上面主函数传入了arr;
for(int x=0;x<args.length;x++)
{
System.out.println(args);//这句话打印了一个空值?还是什么都没有打印。
}
}
}
class MainTest
{
public static void main(String[] args)
{
for(int x=0;x<args.length;x++)
System.out.println(args);
}
}
毕老师的讲座中说:jum在调用 主函数时,传入的是new String[0]是什么意思。
在一个java程序中出现了两个主函数,怎么也能通过。
上面的两个主函数之间是什么关系?
作者:
陈圳
时间:
2013-2-23 13:34
一个java程序中出现了两个主函数,怎么也能通过。在一个类中定义主函数只是为了让类能独立运行.没有其他作用,而一个文件内的public类型的类只能有一个.
main()函数是在虚拟机调用的.在程序编译时,就已经进入内存了.毕老师在往args[]里加入字符串时,是在javac 的后面添加的,不是在程序运行时加的.
我是这样理解的String数组的长度一旦确定,就不能更改了.在编译时,就已经确定了.所以你在运行时添加,没有用了.
作者:
逍林游
时间:
2013-2-23 13:39
类跟main()主函数根本就没关系,只是java的最小运行单位是类,所有才把main()函数放在一个java类中,所以MainTest.main(arr);这句是错的!
作者:
杨玲
时间:
2013-2-23 13:40
我先把代码帮你简练一下吧,先这么看
pubic static void main(String[] args)
{
String[] arr={"hah","hhe","heihie","xixi"};
MainTest.main(arr);
//这里调用另一个类中的main方法。是吧?那么程序就进入到了那个方法中了,
System.out.println(args.length);//这一句呢,打印0是正常的嘛,你这个主函数没有传人参数嘛。
//再下面的for自然就执行不到了。对吧,
}
//好吧,我们在来看看你的另一个main方法。
public static void main(String[] args)
{
for(int x=0;x<args.length;x++)
//你这里打印的是整个数组。相当于打印的是args.toString().而数组的这个方法都是打印的地址(也就是哈希值)。
// System.out.println(args);
//值需要改成这样就成了
System.out.println(args[i]);
}
复制代码
作者:
郝强勇
时间:
2013-2-23 13:50
你想啊,主函数跟平常的我们定义的函数在某种意义上是没有什么区别的,你自己写一个功能方法,在用到的时候就回去调用它,如果这个功能方法的构造函数有参数的话,是不是你在调用这个功能函数的时候就会为这个功能函数的构造方法传入实际参数呢,只不过现在是虚拟机调用你的主函数,这样就是在调用main方法的时候就应该为其传入参数呢,然而你没有传,所以出现args.length为0的情况。
至于:
class MainTest
{
public static void main(String[] args)
{
for(int x=0;x<args.length;x++)
System.out.println(args);
}
}
我之前还真没有试过,但我确定是不能有两个主函数的,我想是你的第二个public static void main(String[] args)
方法是定义在了功能方法中,不是同一意义的main方法。
你打印的是你本身主方法种的args.length所以是0啊。
作者:
胥文
时间:
2013-2-23 13:58
为什么要纠结主函数了,主函数也是静态方法啊
MainTest.main(arr);就是类在调用自己的静态方法,不用想这是主函数,这样看是不是好理解一点了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2