zoukankan      html  css  js  c++  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),只要所有的电器都实现了这个接口,有了两孔或者三孔的插头,那么我后期想增添任何电器都可以随时增加(动态加载)
  • 相关阅读:
    tomcat 服务器的几个重要监听 方法 与 使用
    webSocket 前端 js 加入 心跳机制 的基本写法
    Palinwords (处理回文串)
    Anti-Rhyme Pairs (求最长公共前缀)
    Extend to Palindrome (顺序Hash和逆序Hash处理回文)
    Milk Patterns (hash + 二分)
    次小生成树
    Borg Maze (BFS预处理+最小生成树)
    P1126 机器人搬重物
    P1141 01迷宫 (记忆化搜索)
  • 原文地址:https://www.cnblogs.com/sev7en-/p/6042964.html
Copyright © 2011-2022 走看看