首页 > 代码库 > Java类的加载の动态

Java类的加载の动态

类的加载方式
  • 静态加载类,是编译时刻加载
  • 动态加载类,是运行时刻加载

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类的加载の动态