.class文件可以new 吗?
以前经常写这样的程序:
class c1{
}
---------c1.java-------
class c2{
public static void main(){
c1 myc1=new c1();
}
}
---------c2.java-------
然后编译带main函数的类,得到c2.class和c1.class,运行c2.class
但是现实中往往c1对其他人也有用,此时c1已经编成class了,那么另一个人在c3里面还可不可以new c1??
我在写代码的时候发现一个问题,在lib里面引用都是第三方写好的class文件,但是在自己的代码中可以直接new,我就不明白了,编译器能认识class文件么?还分析出里面的方法和参数??另外我写的JAVA文件在SRC目录下,我尝试把一个包里的class文件考到SRC下和我写的JAVA文件并列放置,class文件显示不出来,也不能NEW了。莫非lib目录对class文件有特殊的解释能力?
有人说class文件只能用class.forName()运行时加载,可是确实经常new,这是怎么个原理?