站内搜索: 请输入搜索关键词

当前页面: 开发资料首页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:/>
类似于在命令行窗口中输入一个参数


↑返回目录
前一篇: Hibernate+Tomcat的pool exhausted问题
后一篇: 关于线程中wait(),notify()的一个问题?