標籤:system stack for java try style nts font 標準
類的載入方式
- 靜態載入類,是編譯時間刻載入
- 動態載入類,是運行時刻載入
new建立對象:是靜態載入類,在編譯時間刻就需要載入所有的可能使用到的類。有一個類有問題(如不存在),都不能通過編譯,會報錯。
Class.forName(類的全稱):通過動態載入類,用到一個類時,才進行載入。 功能性的類建議盡量使用動態載入,並對新添的類實現功能性介面(標準),這樣就不用重新編譯
import T1.OfficeAble;public class Office1 { public static void main(String[] args) { try { Class c= Class.forName("T1.Word"); //傳入什麼類就 載入什麼類 //建立對象 OfficeAble s=(OfficeAble)c.newInstance(); //調用方法 s.start(); } catch (Exception e) { e.printStackTrace(); }}}
package T1;public interface OfficeAble {//建立一個介面來規範對象 public void start(); public void rr();}
package T1;public class Word { public void start() { System.out.println("word調用成功啦!"); } public void rr() {} }
可以理解為裝修房子(編譯)買電器,我之前計劃的有電視冰箱洗衣機,全都隨著裝修安裝完畢了(靜態載入),之後呢(運行),覺得少個微波爐,可是根本就沒有規劃微波爐的線路,那麼就需要拆掉原先的線路為新的電器設定安裝.
而現在我不想那麼麻煩,就在裝修的時候預留好電源插座這種介面(interface),只要所有的電器都實現了這個介面,有了兩孔或者三孔的插頭,那麼我後期想增添任何電器都可以隨時增加(動態載入)
Java類的載入の動態