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

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

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

難度入門
時長 1小時20分
學習人數
綜合評分9.67
760人評價 查看評價
9.9 內容實用
9.6 簡潔易懂
9.5 邏輯清晰
  • 編譯時刻加載類是靜態加載類,運行時刻加載類是動態加載類 new 創建對象是靜態加載類,在編譯時刻就需要加載所有的可能使用到的類 通過Class a=Class.forName(arg[0]);此時為動態加載,因為編譯時不知道使用哪個類,因此編譯沒有加載任何類,通過編譯。運行時,根據 Javac office.java word (word為arg[0],也是類類型),去確定a是哪個類。這就是動態加載。如果word不存在,此時運行會報錯。這就是為何有時候會出現編譯通過,運行報錯的原因。 動態加載一個好處,就是可以隨時增加需要編譯的類。例如沒有excel類,只有word類,也可以運行,需要excel類時再由程序員寫此類(為了能統一控制,word類、excel類需要繼承同一個父類或者繼承同一個接口)
    查看全部
  • Class類 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 type)
    查看全部
    0 采集 收起 來源:Class類的使用

    2016-10-31

  • 集合的泛型只在編譯時有效
    查看全部
  • 獲取類的信息
    查看全部
  • java.lang.reflect.Field類封裝了關于成員變量的操作
    查看全部
  • 方法是Method的對象
    查看全部
  • 類是java.lang.Class 的對象
    查看全部
    0 采集 收起 來源:Class類的使用

    2016-10-30

  • 類的類類型....我還是不懂
    查看全部
    0 采集 收起 來源:Class類的使用

    2016-10-29

  • Foo f = new Foo(); Class類的三種表達方式: 1.Class c1 = Foo.class; 2.Class c2 = f.getClass(); 3.Class c3 = null; c3 = Class.forName("com.imooc.reflect.Foo"); //有異常
    查看全部
    0 采集 收起 來源:Class類的使用

    2018-03-22

  • java中集合的泛型,是防止錯誤輸入的,只在編譯階段有效,繞過編譯就無效了;
    查看全部
  • (1)如何獲取某個方法 方法的名稱和方法的參數列表才能唯一決定某個方法 (2)方法反射的操作 method.invoke(對象,參數列表) 1.要獲取一個方法就是獲取類的信息,獲取類的信息首先要獲取類的類類型 2.獲取方法 名稱和參數列表來決定 getMethod獲取的是public的方法 getDeclaredMethod自己聲明的方法 方法的反射操作是用m對象來進行方法調用 m.invoke();
    查看全部
  • 成員變量也是對象 java.lang.reflect.Field Field類封裝了關于成員變量的操作 getFields()方法獲取的是所有的public的成員變量的信息 getDeclaredFields獲取的是該類自己聲明的成員變量的信息 //得到成員變量的類型的類類型 class fieldType= field.getType(); Stirng typeName = fieldType.getName(); //得到成員變量的名稱 String fieldName = field.getName(); 構造函數也是對象 java.lang.Constructor中封裝了構造函數的信息 getConstructors()獲取的是所有的public的構造函數的信息 getDeclaredConstuctors()方法獲取的是自己聲明的構造函數的信息
    查看全部
  • 可以理解為裝修房子(編譯)買電器,我之前計劃的有電視冰箱洗衣機,全都隨著裝修安裝完畢了(靜態加載),之后呢(運行),覺得少個微波爐,可是根本就沒有規劃微波爐的線路,那么就需要拆掉原先的線路為新的電器設置安裝.而現在我不想那么麻煩,就在裝修的時候預留好電源插座這種接口(interface),只要所有的電器都實現了這個接口,有了兩孔或者三孔的插頭,那么我后期想增添任何電器都可以隨時增加(動態加載)
    查看全部

舉報

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

微信掃碼,參與3人拼團

微信客服

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

幫助反饋 APP下載

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

公眾號

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

友情提示:

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