天天看點

Java 基礎【08】.class getClass () forName() 詳解

  類名.class是Class對象的句柄,每個被加載的類,在jvm中都會有一個Class對象與之相對應。

   如果要建立新的對象,直接使用Class對象的局部class.forName就可以了,不需要用new 類名。

   每個 class 都有一個相應的 Class 對象,編譯完成後,生成的.class檔案就表示 class 對象,用來表示這個類的類型資訊。獲得Class執行個體的三中方式:

利用對象調用getClass()方法擷取該對象的Class執行個體

使用Class的靜态方法forName(),用類的名字擷取一個Class執行個體

運用.calss的方式擷取Class執行個體,對基本資料類型的封裝類,還可以采用.TYPE來擷取對應的基本資料類型的Class執行個體

Java 基礎【08】.class getClass () forName() 詳解
Java 基礎【08】.class getClass () forName() 詳解
Java 基礎【08】.class getClass () forName() 詳解

   在運作期間,如果我們要産生某個類的對象,java虛拟機會檢測該類型的Class對象是否已被加載。

   如果沒有加載,java虛拟機會根據類的名稱找到.class檔案并加載它。

   一旦某個類型的Class對象已經被加載到記憶體,就可以用它來産生該類型的所有對象。

   newInstance()調用内中預設的構造方法。

   newInstance()調用類中預設的構造方法,如果要執行個體的對象中有了自己定義的構造方法(除重寫的和預設構造方法相同的構造方法外)

   建立此 Class 對象所表示的類的一個新執行個體

Java 基礎【08】.class getClass () forName() 詳解
Java 基礎【08】.class getClass () forName() 詳解

   當我們在指令提示符下面編譯好該類之後,輸入java ClassTest Point的時候,此時會輸出Loading point和x=0,y=0

 本文轉自Orson部落格園部落格,原文連結:http://www.cnblogs.com/java-class/p/4496432.html,如需轉載請自行聯系原作者