我是靠谱客的博主 个性小蜜蜂,最近开发中收集的这篇文章主要介绍动态性是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的特性吗_Java的动态特性有哪些?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部