第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

反射——Java高級開發(fā)必須懂的

難度入門
時長 1小時20分
學(xué)習(xí)人數(shù)
綜合評分9.67
760人評價 查看評價
9.9 內(nèi)容實用
9.6 簡潔易懂
9.5 邏輯清晰
  • Java動態(tài)加載類

    知識點1:

    Class.forName("類的全稱"),不僅表示了對象的類類型,還代表了動態(tài)加載類。

    靜態(tài)加載類:編譯時刻加載類(通過new關(guān)鍵字創(chuàng)建的對象)。

    動態(tài)加載類:運行時刻加載類(Class.forName(),得到類類型調(diào)用newInstance())。

    案例:區(qū)分編譯時刻加載類和運行時刻加載類(使用EditPlus工具,Eclipse表現(xiàn)不明顯)。

    描述:在 main 函數(shù)中,有一個 String args[] 參數(shù),這就表示在執(zhí)行某 .class 文件時,可以對 main 函數(shù)傳字符串參數(shù)(例如:命令行中:java OfficeBetter Excel,傳給主函數(shù)的參數(shù)就是Excel,如果傳多個參數(shù),參數(shù)用空格隔開),Office類中使用了兩個類(沒有提供這兩個類),并調(diào)用其相應(yīng)的方法,然后進(jìn)行編譯報錯,提示找不到這兩個類,我們只提供了Word類和相應(yīng)方法,并對它進(jìn)行編譯(這是因為只使用Word的功能),這時候再對Office這個類進(jìn)行編譯,這時候只報Excel找不到的錯誤,現(xiàn)在核心問題是只想使用Word,而不使用Excel這個類,但是報錯(這樣就不能運行,導(dǎo)致不能使用Word的功能),因為new 對象是靜態(tài)加載類的方式,在編譯時刻就需要加載所有可能使用到的類,但實際應(yīng)用希望用到哪個類加載哪個類,這樣就不會在編譯時報錯,并且可以運行,所以可以通過動態(tài)加載類來解決該問題,通過Class.forName(args[0])動態(tài)加載這個類的Class實例對象,通過傳入一個類的路徑,即使沒有這個類,編譯時刻也不會報錯,但運行時刻會報錯,緊接著就可以通過Office的類類型創(chuàng)建Word對象,如果強制轉(zhuǎn)換為Excel類型,但是加載時卻是Word類,就可能發(fā)生錯誤,這時就需要給Word和Excel指定一個標(biāo)準(zhǔn),也就是創(chuàng)建一個接口,并聲明相應(yīng)方法,并且讓W(xué)ord和Excel實現(xiàn)這個接口,如果傳入的參數(shù)是Excel,只需要再創(chuàng)建一個Excel并實現(xiàn)該接口,這樣就不用在主程序中修改類型了,實際應(yīng)用中功能類通常使用動態(tài)加載類。

    https://img4.sycdn.imooc.com/5d117b160001073005450543.jpg


    https://img1.sycdn.imooc.com/5d117cdd0001954d05830353.jpg


    https://img2.sycdn.imooc.com/5d117e9000011f5609610485.jpg

    https://img2.sycdn.imooc.com/5d1180fa0001f34a07310544.jpg

    查看全部
  • Class類的使用

    【一】Class類的使用

    知識點1:Class類概念。

    在面向?qū)ο蟮氖澜缋?,萬事萬物皆對象。

    Java語言中,靜態(tài)的成員和普通數(shù)據(jù)類型不是對象,靜態(tài)成員屬于類,普通數(shù)據(jù)類型的包裝類是對象。

    類是對象,類是java.lang.Class類的實例對象(可以理解為對象是類描述信息的實例,而類是Class描述信息的具體實例)

    官網(wǎng)中把一個Foo的Class實例對象稱作Foo的類類型,類也是對象,是Class類的實例對象。

    知識點2:獲取類類型的三種方式。

    Class類實例對象的表示方式

    Class的構(gòu)造方法為私有構(gòu)造方法,所以不可以通過new關(guān)鍵字創(chuàng)建,也就是只有Java虛擬機可以創(chuàng)建Class的實例對象,任何一個類都是Class的實例對象,這個實例對象有三種表示方式。

    【a】任何一個類都有一個隱含的靜態(tài)成員變量class

    ? ? ? ? ?Class c1=Foo.class。

    【b】通過該類的對象調(diào)用getClass方法

    ? ? ? ? ?Class c2=new Foo().getClass();

    【c】通過Class的forName("類的全稱")。

    ? ? ? ? ?Class c3=Class.forName("com.imooc.reflect.Foo");

    ? 注意: 一個類的Class實例對象只有一個,所以c1==c2==c3。

    知識點3:類類型獲取類的實例對象。

    通過一個類的Class實例對象創(chuàng)建給類的實例。

    語法:Foo foo=(Foo)c1.newInstance()。

    注意:如果c1是A類的Class實例,則創(chuàng)建的是A類的對象,如果是B類的Class實例,則創(chuàng)建的是B類的對象,并且需要做強制類型轉(zhuǎn)換。

    前提:通過類類型調(diào)用newInstance()方法創(chuàng)建對象,前體是Foo類要有無參數(shù)的構(gòu)造方法。



    【二】方法的反射

    【三】成員變量的反射

    【四】構(gòu)造函數(shù)的反射

    【五】Java類加載機制(包括利用反射機制,在程序運行時刻做的一些操作。java的框架如何利用反射的)

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

    2019-07-31

  • 先了解java反射,因為動態(tài)代理中,用到反射,具體如下:

    動態(tài)代理中,要執(zhí)行某個類的方法時,先生成該類的代理類,通過代理類去調(diào)用目標(biāo)類的方法,從而可以在代理類中執(zhí)行 額外的邏輯。為了動態(tài)生成代理類,而不事先生成,我們就需要利用到反射。

    查看全部
  • 在設(shè)計方面:

    功能性的類,我們盡量去使用動態(tài)加載,而不使用靜態(tài)加載,這樣可以使程序更加靈活

    查看全部
  • A a=new A();

    a是A的一個對象。

    而A本身這個類也是java.lang.Class這個類的一個對象

    Class c1 = A.class

    或者

    Class c2 = A.getClass();

    c1,c2 表示A類的類類型(class type)

    可以這么理解:

    A作為類的時候,他就是A,

    A作為對象的時候,他就是c1或者c2 ,作為Class這個類的對象。

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

    2019-06-22

  • 如果一個類中涉及到多個類,此時將多個類向上提取接口(眾類實現(xiàn)該接口),然后通過動態(tài)加載類的方式在運行的時候才創(chuàng)建對象不用的不需要編譯就不會報錯,這樣底層不需要改動,每次增加一個類實現(xiàn)該接口標(biāo)準(zhǔn)就可以也不需要編譯officebetter 只需編譯新添加的類

    查看全部
  • 動態(tài)加載類

    查看全部
  • new 對象的時候都是靜態(tài)加載類,即在編譯時刻就需要加載所有可能用到的類

    查看全部
  • 編譯,靜態(tài)加載,運行加載,動態(tài)加載

    查看全部
  • 通過 類名,全類名,以及該類對象,反射獲取該類類型,然后.newInstance() 獲取該實例

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

    2019-06-18

  • Class .forName("全類名")

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

    2019-06-18

  • Class c1=類名.class

    Class c2=該類的對象.getClass();

    c1==c2

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

    2019-06-18

  • 每一個類都有一個靜態(tài)成員變量 class ,任何一個類都是 Class 類的實例對象,這個對象也是該類的類類型

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

    2019-06-18

  • 我們創(chuàng)建的任何一個類實際上都是 java.lang.Class 類的實例對象

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

    2019-06-18

  • 靜態(tài)加載類,在編譯的時候就需要給所有類寫好,否則,編譯不成功;

    動態(tài)加載類,在運行時,如果沒有該類,才運行失敗;

    另外,可以通過設(shè)置接口,來接收不確定的類,通過接口來實現(xiàn)目標(biāo)類

    查看全部

舉報

0/150
提交
取消
課程須知
童鞋們,學(xué)習(xí)本課程前需要熟悉Java面向?qū)ο蟮乃枷?,并能掌握J(rèn)ava IO輸入輸出流、集合和泛型等知識??蓞⒖寄秸n網(wǎng)Java入門的一、二、三季以及我的文件我做主——Java IO流課程。
老師告訴你能學(xué)到什么?
1、能夠理解并應(yīng)用反射機制。 2、能夠了解反射機制在集合泛型中的應(yīng)用。 3、有利于更好的學(xué)習(xí)框架等Java高級技術(shù)。

微信掃碼,參與3人拼團(tuán)

微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復(fù)購買,感謝您對慕課網(wǎng)的支持!