当前页面: 开发资料首页 → J2SE 专题 → 新手请教,困惑。(关于java机制的)
新手请教,困惑。(关于java机制的)
摘要: 新手请教,困惑。(关于java机制的)
1。看如下代码:
class Demo{
public static void main(String[] args){
int i=13;
int j;
j = i>>1;
System.out.println("result of shift "+j);
}
}
保存的文件名是ShiftDemo.java
为什么这也能通过编译,并且能运行,我的类名和文件名并不一致??
2。
class ShiftDemo{
public static void main(int k){
int i=13;
int j;
j = i>>1;
System.out.println("result of shift "+j);
}
}
这个程序能通过编译,但是运行的时候会报错:
Exception in thread "main" java.lang.NoSuchMethodError: main
我知道应该这样写main(String[] args),但为什么是报这样的错,而不是诸如main的参数错这样的
还有,写成这样main(Sting[] s)也能通过编译并且顺利运行。是不是main(String[] args)只是一种规范,而没有其他的什么原因???
刚才打错了,是main(String[] s)而飞Sting[] s
main()的参数从一开始就是这样定义的,只可以接受字符串数组.
当然是不可以定义成int 或者其他数据类型的.
要参数变量的名称无关.
谢了,那第一个问题有没有高手能告诉我
其实编译好的class是什么文件名也无关紧要,只是在其他的容器里面是根据这个文件名来进行查找和关联的,所以才要求类名和文件名有一定的关系.
比如我们写WINDOWS程序的时候,里面有很多窗体类,编译好后,执行文件名换成什么也是无关紧要的.
因为你的类名非Public .
楼上正解,只有public类要求类名和文件名相同
楼上正解,只有public类要求类名和文件名相同!
一个文件中只有一个
public class
如果你的一个文件里有多个类,你可能要求你的文件名和类名一致吗?如果要一致,你需要取哪个类名作为文件名呢?wxiaof2005(坚持不懈!) OK
只有public类要求类名和文件名相同!
public static void main(String [] args){}
main函数里的参数是在程序运行刚开始的参数 有个例子帮助楼主理解
public class Test{
public static void main(String [] args){
if(args!=null)
{
for (int i=0;i
{
System.out.println(args[i]);
}
}
}
}
结果:
C:/>java Test zhi shi yi ge ce shi
zhi
shi
yi
ge
ce
shi
C:/>
类似于在命令行窗口中输入一个参数