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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

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

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

    知識(shí)點(diǎn)1:

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

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

    動(dòng)態(tài)加載類:運(yùn)行時(shí)刻加載類(Class.forName(),得到類類型調(diào)用newInstance())。

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

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

    知識(shí)點(diǎn)1:Class類概念。

    在面向?qū)ο蟮氖澜缋?,萬(wàn)事萬(wàn)物皆對(duì)象。

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

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

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

    知識(shí)點(diǎn)2:獲取類類型的三種方式。

    Class類實(shí)例對(duì)象的表示方式

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

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

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

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

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

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

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

    ? 注意: 一個(gè)類的Class實(shí)例對(duì)象只有一個(gè),所以c1==c2==c3。

    知識(shí)點(diǎn)3:類類型獲取類的實(shí)例對(duì)象。

    通過(guò)一個(gè)類的Class實(shí)例對(duì)象創(chuàng)建給類的實(shí)例。

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

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

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



    【二】方法的反射

    【三】成員變量的反射

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

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

    查看全部
    1 采集 收起 來(lái)源:Class類的使用

    2019-07-31

  • 先了解java反射,因?yàn)閯?dòng)態(tài)代理中,用到反射,具體如下:

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

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

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

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

    a是A的一個(gè)對(duì)象。

    而A本身這個(gè)類也是java.lang.Class這個(gè)類的一個(gè)對(duì)象

    Class c1 = A.class

    或者

    Class c2 = A.getClass();

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

    可以這么理解:

    A作為類的時(shí)候,他就是A,

    A作為對(duì)象的時(shí)候,他就是c1或者c2 ,作為Class這個(gè)類的對(duì)象。

    查看全部
    1 采集 收起 來(lái)源:Class類的使用

    2019-06-22

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

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

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

    查看全部
  • 編譯,靜態(tài)加載,運(yùn)行加載,動(dòng)態(tài)加載

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

    查看全部
    0 采集 收起 來(lái)源:Class類的使用

    2019-06-18

  • Class .forName("全類名")

    查看全部
    0 采集 收起 來(lái)源:Class類的使用

    2019-06-18

  • Class c1=類名.class

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

    c1==c2

    查看全部
    0 采集 收起 來(lái)源:Class類的使用

    2019-06-18

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

    查看全部
    0 采集 收起 來(lái)源:Class類的使用

    2019-06-18

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

    查看全部
    0 采集 收起 來(lái)源:Class類的使用

    2019-06-18

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

    動(dòng)態(tài)加載類,在運(yùn)行時(shí),如果沒(méi)有該類,才運(yùn)行失敗;

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

    查看全部

舉報(bào)

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

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

微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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

友情提示:

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