欢迎来到天天文库
浏览记录
ID:44208857
大小:46.50 KB
页数:3页
时间:2019-10-19
《Java学习笔记之--Java机制》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、1.我们可以通过Class类来加载类,通过Class类下面的forName()方法来加载一个对象。出Candyjava脅E)loadClassjavapackageaaa;publicclassCandy{static{System.outprintln("loadCandy*');}publicstaticvoidmain(String[]args){System.outprintln("loadCandyMain");
2、}}loadClassjavapackageaaa;publicclassloadClasspublicstaticvoidm2in(String[]args
3、){System.ouf.pnntln(”beforloadcandyM);try{Class.forA/ame(Maaa.
4、Oandyn);}catch(ClassNotFoundExceptione){System.outprintln(e.toString());}}}別B严Javadoc込声明回血fe小J
5、publicclassloadClass{publicstaticvoidmain(String[]args){System.outprintln(Mbeforloadcandy”);Candyca=newCandy();
6、}}<£©madoc僅MMXjiMTOK~'止■loadCS”(Java胡IW)D:Vav>jdkl.7.0b;npvAw.exe(2012-5-7:belorloadcandyloadCandy从上面可以看出,效果是一样的。但forName()是动态加载,即便没有这个Candy类,也不会出现错误,但通过new的话就会出现错误。同时,forName()方
7、法它返回的是一个Class类型,而不是加载的这个类的类型,所以无法这样写:Candyca=Class.forName("aaa.Candy");而只能写成:Classca=Class.forName("aaa.Candy");那这种情况下,ca就不能使用Candy类中的方法了,解决的方法是用反射机制。一般情况下,我们用forName()只是用来加载驱动。1.Java提供了一种简便生成Class对象的方法:类标记Classc=T.class淇中T可以使数据类型,也可是是类名。Classc1=int.class;Classc2=double[].class;Classc3=Candy
8、.class;//Candy是一个类jpackageaaa;
9、■publicclassloadClasspublicstaticvoidshowName(Candycan){Classc仁can.getClass();〃getClass方法可以趺得类的类型Classc2=Candy.class;//T.class方法可以创建f类if(c1==c2)System.oatprintln(HthisisCandyobjectM);}publicstaticvoidmain(String[]args)showName(nevjCandy());}:司監@Javadoc屬亘明K止aload
10、Class[Java应用程序]D:Javajdkl.7.0binjavaw.exe(2012-5-7下牛3:28:14)thisisCandyobject1.我们前面知道,还可以通过instanceof来判断到底是哪一个类。packageaaa;publicclassloadClasspublicstaticvoidshowName(Candycan){(Classc仁can.getClass();〃getClass方法可i/;:宀艾的类:Classc2=Candy・class;//r.class方法瓦以创建一^类if(c1==c2){System.outprintln(
11、HthisisCandycbject”);}if(caninstanceofCandy){System.ourprintln(HthisisCandyobject");}}publicstaticvoidmain(String[]args)AK©JavadocR声明甩a囚妙MfSS
此文档下载收益归作者所有