運行內部類的main方法
定義兩個線程:
一個線程的名字“thread1”,線程功能輸出1~10的階乘。
另一個線程的名字“thread2”,線程功能輸出線程的名字10次。
public class T1 extends Thread {
public T1(String s) {super(s);}
public void run() {
int sum=1;
for(int i=1;i<=10;i++) {
sum=sum*i;
System.out.println(sum);
}
}
}
class T2 extends Thread {
public T2(String s) {super(s);}
public void run() {
for(int i=0;i<19;i++) {
System.out.println(getName());
}
}
public static void main(String args[]) {
T1 t1=new T1("thread1");
T2 t2=new T2("thread2");
t1.start();
t2.start();
}
}
第一眼看到這個,我也有點蒙,按道理來說,用public修飾的不應該是主類嗎?但是main方法卻放在了內部類中?一時難以理解,直接放入myeclipse運行一下,果然報錯了:
報錯信息大致也是我上面分析的意思,找不到main方法,百度找了很多也沒有找到原因,轉念一想,也可能是myeclipse運行機制的問題,於是轉變思路,直接用命令行!
首先在創建.java文件,名字一定要和主類名一樣!這里是T1.java,然后編譯生成.class文件
居然生成了兩個.class文件,瞬間感覺對java一點都不了解,之前一直用myeclipse簡直就是個錯誤(符合真香定律),接下來直接運行T2.class就可以了(T2是內部類)