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

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

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

難度入門
時長 1小時20分
學習人數
綜合評分9.67
760人評價 查看評價
9.9 內容實用
9.6 簡潔易懂
9.5 邏輯清晰
  • 任何一個類都是Class的實例對象,這個實例對象有3種表示方式 1.第一種 [實際在告訴我們任何一個類都有一個隱含的靜態成員變量class] Class c1 = 類名.class 2.第二種 [已經知道該類的對象,通過getClass方法] Foo foo1 = new Foo(); Class c2 = foo1.getClass(); 3.第三種(動態加載類) [該方法需要捕獲異常] Class c3 = null; c3 = Class.forName("com.imooc.reflect.Foo"); //類的全稱 ----------------------------------------------------------------- c1,c2表示Foo類的類類型 萬事萬物皆對象, 類也是對象,是Class類的實例對象 這個對象我們稱為該類的類類型 ---------------------------------------- c1 == c2 =====>true c2 == c3 =====>true 不管c1,c2都代表了Foo類的類類型,一個類只可能是Class類的一個實例對象 同時!我們還可以用類類型(c1,c2,c3)來創建該類的實例對象 方法如下:[需要捕獲異常] Foo foo = (Foo)c1.newInstance();//需要有無參數的構造方法
    查看全部
    0 采集 收起 來源:Class類的使用

    2018-03-22

  • 【類類型的含義:Foo類本身是Class類的實例對象=>[變量名為c1/c2],而Foo類本身又有實例對象foo1,所以c1,c2就為類類型】 class類里面有一個private Class(){}私有方法,所以類的實例不能new出來,只能有以下3種方式表示; 1.Class c1 = Foo.class;//實際在告訴我們,任何一個類都有一個隱含的靜態成員變量class 2.已結知道該類的對象(實例化對象)通過getClass方法可獲得 Foo foo1 = new Foo(); Class c2 = foo1.getClass(); 3.class c3 = class.forName("類的全稱"); ---------------------------------------------- 類是對象,類是java.lang.Class類的實例對象
    查看全部
    1 采集 收起 來源:Class類的使用

    2018-03-22

  • int i = 5[普通數據類型] 靜態的東西屬于類而不屬于對象
    查看全部
    0 采集 收起 來源:Class類的使用

    2016-11-29

  • 1、靜態加載類,是編譯時刻加載;動態加載類,是運行時刻加載 2、new創建對象:是靜態加載類,在編譯時刻就需要加載所有的【可能使用到的類】。有一個類有問題(如不存在),都不能通過編譯,會報錯。 3、Class.forName()通過動態加載類,可以用到一個類時,才進行加載。 【功能性的類盡量使用動態加載,并對新添的類實現功能性接口(標準),這樣就不用重新編譯】 1.Clss.forName("類的全稱") 不僅表示了類的類類型,還代表了動態加載類 請大家區分編譯、運行 編譯時刻加載類是靜態加載類,運行時刻加載類是動態加載類
    查看全部
  • new創建對象 是靜態加載類 在編譯時刻就需要加載所有可能使用到的類 動態加載類可以用哪個就加載哪個 解決靜態加載的問題
    查看全部
  • Class.forName("類的全稱")不僅表示類的類類型,還代表了動態加載類; 編譯時刻加載類是靜態加載類,運行時刻加載類是動態加載類; new創建對象是靜態加載類,在編譯時刻就需要加載所有可能使用到的類;
    查看全部
  • 1.靜態的成員,普通數據類型不是對象 2.類是java.lang.Class類的實例對象,這個對象表示這個類的類類型(class type) Class類的構造器是private的,所以我們不能創建Class的對象,只能由JVM來創建Class的對象。 (1)Class c1 = 類名.class;(說明每個類(對象)都有一個隱含的靜態成員變量class) (2)Class c2 = 類的實例對象.getClass(); (3)Class c3 = Class.forName(類名); 一個類只有一個類類型(class type) 4.可以通過類類型來獲取一個類的實例對象: c1.newInstance() c1是A類的類類型,創建出A類的對象(此處c1為Foo的類類型,創建出Foo類的一個實例對象),因此根據得出的結果需要做強制類型轉換(不加那個 Foo 類型是可以的 ?但是編譯器會報警告 ?提示這里 等號兩邊的 類型不一樣) 類名 類的實例對象名稱 = (類名)c1.newInstance();前提是該類有無參構造方法。
    查看全部
    0 采集 收起 來源:Class類的使用

    2016-11-29

  • 動態
    查看全部
  • 反射的操作都是編譯之后的操作;就是運行階段 java中集合的泛型是防止錯誤輸入的;只在編譯階段有效,只要繞過編譯就無效
    查看全部
  • getMethod獲取的是public方法,getDelcaredMethod獲取自己聲明的方法 Method m =c.getMethod(methodName,paramtypes);//paramtypes可以用數組的形式 表示new Class[] Method m = c.getMethod("print", new Class[]{int.class,int.class}); Method m = c.getMethod("print", int.class,int.class); 方法的反射操作 a1.print(10, 20);方法的反射操作是用m對象來進行方法調用 和a1.print調用的效果完全相同 //方法如果沒有返回值返回null,有返回值返回具體的返回值 Object o = m.invoke(a1,new Object[]{10,20}); Object o = m.invoke(a1, 10,20);
    查看全部
  • 成員變量是java.lang.reflect.Field的對象 Field[] fs = c.getFields()//獲取所有public的成員變量Field[]信息 c.getDeclaredFields()//獲取的是該類自己聲明的成員變量信息 field.getType()//獲得成員類型的類類型 field.getName()//獲得成員的名稱 構造函數是java.lang.Constructor類的對象 Class.getConstructor()//獲得Constructor[]所有公有構造方法信息 getDeclaredConstructors()//獲取自己聲明的構造方法 Constructor.getName()//獲取構造函數的名字 Constructor.getParameterTypes()//獲取構造函數的參數列表,得到的是參數列表的類類型
    查看全部
  • Method類,方法對象, 一個成員方法就是一個Method對象 getMethods()方法獲取的是所有public函數,包括父類繼承而來的 getDeclaredMethods()獲取的是所有該類自己聲明的方法,不問訪問權限 Method[] ms=c.getMethods();//c.getDeclaredMethods(); //得到方法的返回值類型的類類型 Class returnType=ms[i].getReturnType(); //獲取參數類型-->得到的是參數列表的類型的類類型 Class[] paramType=ms[i].getParameterTypes();
    查看全部
  • Class.forName("類的全稱")不僅表示類的類類型,還代表了動態加載類; 編譯時刻加載類是靜態加載類,運行時刻加載類是動態加載類; new創建對象是靜態加載類,在編譯時刻就需要加載所有可能使用到的類;
    查看全部
  • 1.靜態的成員,普通數據類型不是對象 2.類是java.land.Class類的實例對象,這個對象表示這個類的類類型(class type) (1)Class c1 = 類名.class;(說明每個類都有一個隱含的靜態成變量class) (2)Class c2 = 類的實例對象.getClass(); (3)Class c3 = Class.forName(類名); 一個類只有一個類類型(class type) 4.可以通過類類型來獲取一個類的實例對象:類名 類的實例對象名稱 = (類名)c1.newInstance();前提是該類有無參構造方法。
    查看全部
    0 采集 收起 來源:Class類的使用

    2016-11-28

  • 動態加載
    查看全部

舉報

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

微信掃碼,參與3人拼團

微信客服

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

幫助反饋 APP下載

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

公眾號

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

友情提示:

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