1. 程式人生 > >JAVA核心類

JAVA核心類

1,CLASS類——表示執行時類或介面的資訊。

  可通過class物件獲取類名,父類等資訊,並可通過class類來獲取該類的屬性,方法,構造方法,包等。

  獲取class物件有如下常用方法:

  (已知類存在,已知類名) 直接類.class方法,返回該類的型別資訊.class。其外,class.getCanonicalName()靜態方法,返回class物件所表示的型別資訊的全類名。

  (擁有一個物件的引用,改方法可用於確定物件的具體型別)物件.getClass(),返回該物件所屬類的資訊。

  (已知全類名,未知該類是否存在)Class.forName(className),利用Class<?> clazz=Class.forName(className)來載入該類。

   Java提供兩種方式(顯式和隱式)來實現類裝載的動態型。隱式裝載:使用new來定義一個例項變數時,如該型別還未載入到jvm中就自動裝載。顯式裝載:程式設計師根據自己需求使用Class類的forName()方法和ClassLoader的loadClass()方法。

2,Constructor類——用來描述單個建構函式,Class物件提供了4個方法供程式設計者獲取建構函式。

  class.getConstructor(Class parameterTypes)呼叫class類的getConstructor(..)方法,返回指定引數型別的構造方法的Constructor物件。獲取的方法必須是共有的,否則會丟擲java.lang.NoSuchMethodException異常。

  class.getDeclaredConstructor(Class parmeterTypes)放回指定引數型別的構造方法的Constructor物件,包括受保護和私有的構造方法。  

  class.getConstructors(),返回指定類的全部共有構造方法,並存儲在一個Constructor的數組裡,如果該類沒有構造方法,則放回一個長度為0的Constructor陣列。

  class.getDeclaredConstructor()返回指定類的全部構造方法,包括私有受保護。功能如上述方法類似。

3,Method——用於描述類的單個方法(不包括構造方法)。class提供4鍾方法獲取method類物件。

  介紹兩種修飾方法的宣告:final和native。final是為了不讓子類重寫該方法,該方法功能已確定,不能更改。程式碼執行時比編譯器使用inline(行內)呼叫機制。直接將該方法主體插入到呼叫處(一方面這將提高效率但如果final方法過大或多出呼叫會使主體程式碼迅速膨脹,從而降低效率)。native方法是一個Java呼叫非Java程式碼的介面,其實現體在Java語言外面實現。

  getMethod(String name,Class...parameterTypes)獲取指定名稱指定引數型別的共有方法描述物件,包括本身和父類的方法。

  getMethods(),獲取共有方法描述物件列表,包括本身和父類介面所有的共有方法描述物件。

  getDeclaredMethod(String name,Class...parameterTyoes)獲取指定名稱指定引數型別的方法描述物件(包括受保護和私有),包括本身和父類的方法。

  getDeclaredMethods(),獲取方法描述物件列表,包括共有受保護私有,本身及父類介面。

4,Field——用於描述類的單個欄位。(屬性等)class類似地提供4種方法來獲取欄位描述物件。

  getField(String name),獲取指定名稱的公有屬性,否則將丟擲NoSuchFieldException異常。

  getFields(),獲取公有屬性描述物件列表。

  getDeclaredField(String name),獲取指定名稱的屬性,包括私有受保護。

  getDeclaredFields(),放回class的所有屬性。