-
動態加載類方法,Class.forName("類的稱"),運行時的加載是動態加載
編譯時加載類是靜態加載
查看全部 -
使用類的類類型創建類的對象實例方法
Foo foo = (Foo)c1.newInstance
查看全部 -
任何一個類都是Class類的實例對象,這個實例對象有三種方式
1 Class c1 = Foo.class//實際是說每個類都有一個隱含的class成員變量
2 Class c2 = foo.getClass()//類的類類型,萬事萬物皆對象,這個對象稱為該類的類類型
3 Class c3 = Class.forName("com.imooc.reflect.Foo")
(c1==c2==c3)=true,一個類只能是Class類的一個實例對象
查看全部 -
類是對象,是java.lang.Class這個類的實例對象
查看全部 -
類是對象,是java.lang.Class的實例對象,這個實例對象有三種表示方式
????class Foo{} ? 類
Class c1=Foo.class; ? (類名)
Class c2=foo1.getClass();
? ? c1,c2 表示了父類的類 類型(class type)
? ?3.Class c3=null;
? ? ? c3=Class.forName("com.imooc.reflect.Foo") ? ?類全名
??????c1=c2=c3 ?都是Foo類的類類型
查看全部 -
類是對象,是java.lang.Class的實例對象,這個實例對象有三種表示方式
????class Foo{} ? 類
Class c1=Foo.Class; ? (類名)
Class c2=foo1.getClass();
? ? c1,c2 表示了父類的類 類型(class type)
? ?3.Class c3=null;
? ? ? c3=Class.forName("com.imooc.reflect.Foo") ? ?類全名
??????c1=c2=c3 ?都是Foo類的類類型
查看全部 -
/**
* 反射的操作都是編譯之后的操作
* c1==c2結果相等,說明編譯之后集合的泛型是去泛型化的
* java中集合的泛型是防止錯誤輸入的,只在編譯階段有效
* 繞過編譯泛型就無效了
* 驗證:可以通過方法的反射來操作,繞過編譯
*/
查看全部 -
/**
* 獲取方法,方法由名稱和參數列表決定
* getMethod()獲得的是public的方法
* getDeclearedMethod()獲得的是自己聲明的方法
*/
查看全部 -
/**
* 構造函數也是對象
* 是java.lang.Constructor類的對象
* java.lang.Constructor類封裝了構造函數的操作信息
*/
查看全部 -
/**
* 成員變量也是對象
* 成員變量是java.lang.reflect.Field類的對象
* Field類封裝了關于成員變量的操作
* getField()獲得的是所有public的成員變量的xinxi
* getDeclearedField()獲取的是該類自己聲明的所有成員變量
*/
查看全部 -
Method類是方法的類,一個方法是一個Method類的對象
查看全部 -
類是對象,類是java.lang.Class類的實例對象.
查看全部 -
12345
查看全部 -
1.類是java.lang.Class的對象,有三種方法可以拿到類的類類型。經常使用的是Class.forName或者對象.getClass()。
2.new方法是編譯期靜態加載對象,需要保證編譯時對象就存在且正確。使用類的類類型來加載對象是動態加載對象,運行時正確即可。
3.通過反射可以調用類的方法,哪怕是private的方法,從而修改一些默認的行為。查看全部 -
類有隱含的靜態成員變量class查看全部
舉報