區(qū)別:
(推薦教程:java入門(mén)教程)
class是Java中的關(guān)鍵字,如public class Xxx 或者 class Xxx ,在聲明Java類(lèi)時(shí)使用。
Class是一個(gè)類(lèi),相當(dāng)于是對(duì)類(lèi)的抽象和集合。
Class介紹:
Class是一個(gè)類(lèi),它在java.lang包中。
它的構(gòu)造函數(shù)是private屬性,所以我們不能直接new一個(gè)Class對(duì)象出來(lái)。“私有構(gòu)造函數(shù)。只有Java虛擬機(jī)創(chuàng)建類(lèi)對(duì)象。不使用此構(gòu)造函數(shù),并阻止生成默認(rèn)構(gòu)造函數(shù)?!?/p>
如何得到Class對(duì)象?
1、通過(guò)getClass()方法獲取到Class對(duì)象
getClass()方法是Object類(lèi)的一部分。如果我們已經(jīng)創(chuàng)建了某個(gè)類(lèi)型的對(duì)象,那么我們可以通過(guò)getClass()方法來(lái)獲取該類(lèi)型的Class的對(duì)象。
package Task; import org.junit.Test; public class Try0 { @Test public void toTry() throws ClassNotFoundException { // //forName方法:參數(shù)為其類(lèi)的路徑 // Class a = Class.forName("Task.Try1"); // System.out.println(a); //通過(guò)對(duì)象得到類(lèi) Try1 try1 = new Try1(); Class b = try1.getClass(); System.out.println(b); } } class Try1{ }
運(yùn)行結(jié)果:
(視頻教程推薦:java視頻教程)
2、通過(guò)forName()方法獲取到Class對(duì)象
Class.forName方法是Class類(lèi)的一個(gè)靜態(tài)方法。所以可以直接通過(guò)Class.forName(“類(lèi)的路徑”)獲取Class對(duì)象。
package Task; import org.junit.Test; public class Try0 { @Test public void toTry() throws ClassNotFoundException { //forName方法:參數(shù)為其類(lèi)的路徑 Class a = Class.forName("Task.Try1"); System.out.println(a); } } class Try1{ }
運(yùn)行結(jié)果:
3、類(lèi).class獲得Class對(duì)象(類(lèi)字面常量)
package Task; import org.junit.Test; public class Try0 { @Test public void toTry() throws ClassNotFoundException { // //forName方法:參數(shù)為其類(lèi)的路徑 // Class a = Class.forName("Task.Try1"); // System.out.println(a); // //通過(guò)對(duì)象得到類(lèi) // Try1 try1 = new Try1(); // Class b = try1.getClass(); // System.out.println(b); //類(lèi)字面常量 Class c = Try1.class; System.out.println(c); } } class Try1{ }
運(yùn)行結(jié)果: