類的動態載入 2

2021-07-22 02:22:24 字數 827 閱讀 3304

1.通過new建立物件是靜態載入,如圖一,假如此時word類和excel類並不存在,office類是不可以通過編譯的,再假如乙個類中要對很多類進行例項化,都是通過new例項化的,那麼,但凡有乙個類出問題了,那麼整個大類就不會通過編譯。

2.如圖二,我們使用的是動態載入類的方法,在編譯此類時,並不會載入那些需要動態載入的類,所以即使那些需要例項化的類不存在,officebetter類也可以進行編輯,只有在使用那些不存在類的例項時才會報錯,類找不到啊。。。。

圖一

圖二3.動態載入類的好處,我們以圖二,三,四三個類來說,

注意,圖二中我們在建立類物件時,需要強制轉換類型別,此時我們怎麼會知道傳入的類是啥呀,即使知道是具體哪個類,我們在這裡寫了這個類,誰又能保證今後需求不變動呢,難道每次更改這個類,我們都要到這類改一下??不,我們有更好的方法,我們可以宣告乙個介面,如下,然後實現這個介面,這樣的話,每當功能變動時,我們只需要新建乙個類實現我們這個介面即可,也不要修改圖三中類的**,也不用重新進行編譯。。。。。。。。。。很好就學過這個知識,也就是現在專案用到了,所以理解起來感覺又不一樣了。

圖三

圖四

反射2 動態載入類

動態載入 和靜態載入的區別 class.forname 類的全稱 編譯時刻載入類是靜態載入類,執行時刻載入類是動態載入類。package dog public class animal if cat equals args 0 package dog public class dog 很顯然以上第一...

動態載入類(動態載入DLL檔案) zz

本人剛剛開始編寫程式不久,開發中發現一非常好的方法。大家共享。我們在編寫程式的時候經常會遇到這樣的情況 程式中要用到某種計算,而且這種計算的計算方式很多,我們不得不在編寫程式時就要考慮的十分全面,將各種情況到考慮到。但是這樣做又非常的費力,因為我們無法 到程式編好後,還會出現什麼樣的計算方式。如果計...

java動態載入類

new建立物件是靜態載入類,在編譯時刻就需要載入所有的可能用到的類。而通過動態載入類可以解決此問題 class office if excel equals args 0 以上 在編譯時就會報錯,因為找不到word類和excel類以及其各自的 start 方法.若存在乙個word類,我們編譯器還是不...