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

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

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

難度入門
時長 1小時20分
學習人數
綜合評分9.67
760人評價 查看評價
9.9 內容實用
9.6 簡潔易懂
9.5 邏輯清晰
  • 獲取方法信息
    查看全部
  • 編譯時刻加載類是靜態加載類,運行時刻加載類是動態加載類<br> new 創建對象是靜態加載類,在編譯時刻就需要加載所有的可能使用到的類<br> 通過Class a=Class.forName(arg[0]);此時為動態加載,因為編譯時不知道使用哪個類,因此編譯沒有加載任何類,通過編譯。運行時,根據 Java OfficeBetter Word (Word為arg[0],也是類類型),去確定a是哪個類。這就是動態加載。如果word不存在,此時運行會報錯。這就是為何有時候會出現編譯通過,運行報錯的原因。<br> 動態加載一個好處,就是可以隨時增加需要編譯的類。例如沒有excel類,只有word類,也可以運行,需要excel類時再由程序員寫此類(為了能統一控制,word類、excel類需要繼承同一個父類或者繼承同一個接口)。
    查看全部
  • 1)在面向對象的世界里,萬事萬物皆對象。 類是對象,類是java.lang.Class類的實例對象。 There is a class named Class 2)//Foo的實例對象如何表示 Foo foo1=new Foo();//foo1就表示出來了 //Foo這個類也是一個實例對象,Class類的實例對象,如何表示呢? //任何一個類都是Class的實例對象,這個實例對象有三種表示方式 //第一種表示方式--->實際在告訴我們任何一個類都有一個隱含的靜態成員變量class Class c1=Foo.class; //第二種表達方式--->已經知道該類的對象通過getClassF方法 Class c2=foo1.getClass(); //官網c1,c2表示了Foo類的類類型(class type),萬事萬物皆對象,類也是對象,是Class類的實例對象 //這個對象我們稱為該類的類類型 //不管c1 or c2都代表了Foo類的類類型,一個類只可能是Class類的一個實例對象 //第三種表達方式 Class c3=null; c3=Class.forName("com.imooc.reflect.Foo"); //我們完全可以通過類的類類型創建類的對象實例--->通過c1 or c2 or c3創建Foo的實例對象 Foo foo=(Foo)c1.newInstance();//需要有無參數的構造方法
    查看全部
    0 采集 收起 來源:Class類的使用

    2018-03-22

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

    2015-11-25

  • 方法的反射
    查看全部
  • Class.forName()動態加載類
    查看全部
  • 編譯時刻加載類是靜態加載類,運行時刻加載類是動態加載類<br> new 創建對象是靜態加載類,在編譯時刻就需要加載所有的可能使用到的類<br> 通過Class a=Class.forName(arg[0]);此時為動態加載,因為編譯時不知道使用哪個類,因此編譯沒有加載任何類,通過編譯。運行時,根據 Java OfficeBetter Word (Word為arg[0],也是類類型),去確定a是哪個類。這就是動態加載。如果word不存在,此時運行會報錯。這就是為何有時候會出現編譯通過,運行報錯的原因。<br> 動態加載一個好處,就是可以隨時增加需要編譯的類。例如沒有excel類,只有word類,也可以運行,需要excel類時再由程序員寫此類(為了能統一控制,word類、excel類需要繼承同一個父類或者繼承同一個接口)。
    查看全部
  • ye de me biao da le -_-
    查看全部
  • Class c1 = Foo.class;<br> Class c2 = foo.getClass();<br> CLass c3 = Class.forName("com.imooc.reflect.Foo"); c1 == c2 ==c3
    查看全部
    0 采集 收起 來源:Class類的使用

    2018-03-22

  • 得到類的類類型,就可以得到類的任何信息
    查看全部
  • import java.lang.reflect.Method; public class ClassUtil { /** * 打印類的信息,包括類的成員函數、成員變量(只獲取成員函數) * @param obj 該對象所屬類的信息 */ public static void printClassMethodMessage(Object obj){ //要獲取類的信息 首先要獲取類的類類型 Class c = obj.getClass();//傳遞的是哪個子類的對象 c就是該子類的類類型 //獲取類的名稱 System.out.println("類的名稱是:"+c.getName()); /* * Method類,方法對象 * 一個成員方法就是一個Method對象 * getMethods()方法獲取的是所有的public的函數,包括父類繼承而來的 * getDeclaredMethods()獲取的是所有該類自己聲明的方法,不問訪問權限 */ Method[] ms = c.getMethods();//c.getDeclaredMethods() for(int i = 0; i < ms.length;i++){ //得到方法的返回值類型的類類型 Class returnType = ms[i].getReturnType(); System.out.print(returnType.getName()+" "); //得到方法的名稱 System.out.print(ms[i].getName()+"("); //獲取參數類型--->得到的是參數列表的類型的類類型 Class[] paramTypes = ms[i].getParameterTypes(); for (Class class1 : paramTypes) { System.out.print(class1.getName()+","); } System.out.println(")"); } }
    查看全部
  • Class c = obj.getClass(); c.getName(); 獲取類的名稱
    查看全部
  • 基本數據類型 void都存在類類型
    查看全部
  • 編譯時刻加載類是靜態加載類,運行時刻加載類是動態加載類<br> new 創建對象是靜態加載類,在編譯時刻就需要加載所有的可能使用到的類<br> 通過Class a=Class.forName(arg[0]);此時為動態加載,因為編譯時不知道使用哪個類,因此編譯沒有加載任何類,通過編譯。運行時,根據 Java OfficeBetter Word (Word為arg[0],也是類類型),去確定a是哪個類。這就是動態加載。如果word不存在,此時運行會報錯。這就是為何有時候會出現編譯通過,運行報錯的原因。<br> 動態加載一個好處,就是可以隨時增加需要編譯的類。例如沒有excel類,只有word類,也可以運行,需要excel類時再由程序員寫此類(為了能統一控制,word類、excel類需要繼承同一個父類或者繼承同一個接口)。
    查看全部
  • new 創建對象是靜態加載類,在編譯時就需要加載所有的可能使用到的類
    查看全部

舉報

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

微信掃碼,參與3人拼團

微信客服

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

幫助反饋 APP下載

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

公眾號

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

友情提示:

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