动态性是Java的特性吗_Java的动态特性有哪些?
Java的動態特性有兩種,一是隱式的;另一種是顯示的。隱式的(implicit)方法就是當程式設計師用到new 這個Java 關鍵字時,會讓類別載入器依需求載入您所需要的類別,這種方式使用了隱式的(implicit)方法。顯式的方法,又分成兩種方式,一種是藉由java。
lang。Class 里的forName()方法,另一種則
是藉由java。lang。ClassLoader 里的loadClass()方法。您可以任意選用其中一種方法。
2 隱式的動態特性
在執行java文件時,只有單獨的變量聲明是不會載入相應的類的,只有在用new生成實例時才載入
如示例所示:
public class Main
public static void main(String args[])
{
A a1 = new A() ;
B b1 ;
}
類A和B相同,如下:
public class A
{
public void print(“using A”);
}
編譯后,可用java –verbose:class Main運行,察看輸出結果。
可以看到JVM只載入了A,而沒有載入B。
另外,類的載入只在執行到new一個類時,才載入,如果沒有執行到new語句,則不載入。
如://類Office
public class Office
{
public static void main(String[] args)
{
Word myword=null;
Excel myexcel=null;
if (args[0]。
equals("Word"))
{
myword = new Word();
myword。start();
}
if (args[0]。equals("Excel"))
{
myexcel = new Excel();
myexcel。
start();
}
}
}
//類Word和Excel基本相同,如下
public class Word
{
public void start()
{
System。out。println("using word");
}
}
在dos命令提示符下,輸入java –verbose Office Excel可以看到JVM只載入Excel類,而不載入Word類。
3 顯示的動態特性
3。1 java。lang。Class里的forName()方法
在上一個Office示例中,進行如下修改:
一 加入Assembly類
public interface Assembly
{
public void start();
}
二 讓Word和Excel類實現該接口
public class Word implements Assembly
{
public void start()
{
System。
out。println("using word");
}
}
三 Office 類如下所示
public class Office
{
public static void main(String[] args) throws Exception
{
java。
lang。Class c = java。lang。Class。forName(args[0]);
Object o = c。newInstance();
Assembly a = (Assembly)o;
a。start();
}
}
考試大溫馨提示:本內容來源于網絡,僅代表作者個人觀點,與本站立場無關,僅供您學習交流使用。
其中可能有部分文章經過多次轉載而造成文章內容缺失、錯誤或文章作者不詳等問題,請您諒解。如有侵犯您的權利,請聯系我們,本站會立即予以處理。
全部
總結
以上是生活随笔為你收集整理的动态性是Java的特性吗_Java的动态特性有哪些?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java jvm崩溃_IObjects
- 下一篇: 合成复用原则java实例_第7节 合成复