亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

反射——Java高級開發必須懂的

難度入門
時長 1小時20分
學習人數
綜合評分9.67
760人評價 查看評價
9.9 內容實用
9.6 簡潔易懂
9.5 邏輯清晰
  • 靜態加載類:編譯時刻加載

    動態加載類:運行時刻加載

    new方式創建對象是靜態加載類

    Class.forName(“類的全稱”)是動態加載類,獲得該類的類類型,通過(類名)類類型.newInstance()方法獲得該類的對象(需要強制類型轉換)。

    功能性的類一般使用動態加載,這些功能性的類應該遵循相同的標準(interface)

    查看全部
  • @Java反射機制---獲取方法信息
    基本數據類型,void關鍵字都存在類類型
    class.getName():獲取類的名稱
    class.getSimpleName():不包含包名的類的名稱
    class.getMethods():獲取是該類的所有public方法,包括從父類繼承的方法
    class.getDeclareMethods():獲取該類自行聲明的所有方法,不論訪問權限
    method.getName():獲取方法名
    method.getReturnType():獲取方法的返回值
    method.getParameterTypes():獲取方法的參數類型的類類型數組class[]

    一、基本的數據類型,void關鍵字等都存在類類型
    ????Class c = 基類.class (int,String,double,void等)
    二、Class類的基本API操作
    ????1、c.getName()可以獲取類的名稱
    ????2、c.getSimpleName();//不包含包名的類的名稱
    ????3、c.getMethods()獲取類的【public方法】集合,【包括繼承來的】
    ????4、c.getDeclaredMethods()獲取的是所有該類【自己聲明】的方法,【不問訪問權限】
    ????注意【所有方法都是Method類的對象】
    三、Method類提供了操作方法的方法
    ????1、m.getReturnType()得到該方法的返回值類型的類類型(class),如int.class String.class
    ????2、m.getName()得到方法的名稱
    ????3、m.getParameterTypes()獲得參數列表類型的類類型,如參數為(int,int)則得到(int.class ,int class)
    ????Class c1 = int.class; int的類類型
    ????Class c2 = String.class; String類的類類型 String類字節碼
    ????Class c3 = double.class; double這個數據類類型的字節碼表示方式
    ????Class c4 = Double.class; Double這個類的類類型字節碼表示方式
    ????Class c5 = void.class; 表達了void這個類的類類型
    ????getName為這個類的類類型的具體名稱
    ????c1.getName ---> int
    ????c2.getName ---> java.lang.String 類的全稱
    ????c2.getSimpleName ---> String 不包含包名的類的名稱


    查看全部
  • @Java反射機制---動態加載類
    1.靜態加載類,是編譯時刻加載;動態加載類,是運行時刻加載。
    2.new創建對象:是靜態加載類,在編譯時刻就需要加載所有的【可能使用到的類】。有一個類有問題(如不存在),都不能通過編譯,會報錯。
    3.Class.forName()通過動態加載類,可以用到一個類時,才進行加載。
    【功能性的類盡量使用動態加載,并對新添的類實現功能性接口(標準),這樣就不用重新編

    需要統一標準(interface)

    其他的類要遵循這個標準(implements)

    查看全部
  • new 靜態加載

    查看全部
  • 萬事萬物皆對象

    類也是對象,任何一個類都是Class類的一個實例對象。

    類對象的三種表達方式(例如現有類Foo()):

    1:Class c1=Foo.class;

    2:Foo foo1=new Foo();

    Class c2=foo1.getClass();

    3.Class c3=Class.forName(“類的全稱”);

    c1=c2=c3表示了不論何種方式創建,都是同一個對象(只是Class類的一個實例對象)

    查看全部
    0 采集 收起 來源:Class類的使用

    2018-07-15

  • 類是誰的對象呢?

    類是對象,類是java.lang.Class類的實例對象

    查看全部
    0 采集 收起 來源:Class類的使用

    2018-11-25

  • 反射的應用:創建實例? ? Foo foo=(Foo)c1.newInstance();

    查看全部
    0 采集 收起 來源:Class類的使用

    2018-07-05

  • @Java反射機制---獲取方法信息
    基本數據類型,void關鍵字都存在類類型
    class.getName():獲取類的名稱
    class.getSimpleName():不包含包名的類的名稱
    class.getMethods():獲取是該類的所有public方法,包括從父類繼承的方法
    class.getDeclareMethods():獲取該類自行聲明的所有方法,不論訪問權限
    method.getName():獲取方法名
    method.getReturnType():獲取方法的返回值
    method.getParameterTypes():獲取方法的參數類型的類類型數組class[]

    一、基本的數據類型,void關鍵字等都存在類類型
    ????Class c = 基類.class (int,String,double,void等)
    二、Class類的基本API操作
    ????1、c.getName()可以獲取類的名稱
    ????2、c.getSimpleName();//不包含包名的類的名稱
    ????3、c.getMethods()獲取類的【public方法】集合,【包括繼承來的】
    ????4、c.getDeclaredMethods()獲取的是所有該類【自己聲明】的方法,【不問訪問權限】
    ????注意【所有方法都是Method類的對象】
    三、Method類提供了操作方法的方法
    ????1、m.getReturnType()得到該方法的返回值類型的類類型(class),如int.class String.class
    ????2、m.getName()得到方法的名稱
    ????3、m.getParameterTypes()獲得參數列表類型的類類型,如參數為(int,int)則得到(int.class ,int class)
    ????Class c1 = int.class; int的類類型
    ????Class c2 = String.class; String類的類類型 String類字節碼
    ????Class c3 = double.class; double這個數據類類型的字節碼表示方式
    ????Class c4 = Double.class; Double這個類的類類型字節碼表示方式
    ????Class c5 = void.class; 表達了void這個類的類類型
    ????getName為這個類的類類型的具體名稱
    ????c1.getName ---> int
    ????c2.getName ---> java.lang.String 類的全稱
    ????c2.getSimpleName ---> String 不包含包名的類的名稱

    查看全部
  • @Java反射機制---動態加載類
    1.靜態加載類,是編譯時刻加載;動態加載類,是運行時刻加載。
    2.new創建對象:是靜態加載類,在編譯時刻就需要加載所有的【可能使用到的類】。有一個類有問題(如不存在),都不能通過編譯,會報錯。
    3.Class.forName()通過動態加載類,可以用到一個類時,才進行加載。
    【功能性的類盡量使用動態加載,并對新添的類實現功能性接口(標準),這樣就不用重新編譯】

    查看全部
  • @Java反射機制---Class類的使用
    類是誰的對象:類是java.lang.Class類的實例對象。除了靜態的成員 和 普通數據類型。

    1.任何類都是Class類的實例對象 ,這個對象表示這個類的類類型(class type)
    2.獲得class實例有三種方法,例: Foo foo = new Foo();
    ?· 通過類名 Class c1 = Foo.class; 得到(說明每個類都有一個隱含的靜態成員)
    ?· 通過類的實例 Class c2 = foo.getClass(); 得到
    ?· 通過 Class c3 = Class.forName(Foo); 得到
    3.創建類的實例:Foo foo = (Foo)c1.newInstance();//需要有無參數的構造方法

    查看全部
    1 采集 收起 來源:Class類的使用

    2018-06-24

  • 編譯時刻加載類是靜態加載類,運行時刻加載類是動態加載類

    功能性的類使用動態加載類


    查看全部
  • 動態加載類、動態加載類:在設計程序的時候要有思想上的提升,比如功能類就需要動態加載類

    查看全部
  • new 創建對象 是靜態加載類,在編譯時就需要加載所有的可能使用到的類。

    功能性的類為了避免靜態加載類可能產生的相互影響而導致其它功能也無法正常使用,盡量使用動態加載類

    查看全部
  • ?new創建對象是靜態加載類,在編譯時刻就需要加載所有可能用到的類

    查看全部
  • 類加載方法

    查看全部

舉報

0/150
提交
取消
課程須知
童鞋們,學習本課程前需要熟悉Java面向對象的思想,并能掌握Java IO輸入輸出流、集合和泛型等知識。可參考慕課網Java入門的一、二、三季以及我的文件我做主——Java IO流課程。
老師告訴你能學到什么?
1、能夠理解并應用反射機制。 2、能夠了解反射機制在集合泛型中的應用。 3、有利于更好的學習框架等Java高級技術。

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!