Java模块化与接口组成(十六)

Updated on in Java with 0 views and 0 comments

模块化

模块的基本使用

  • 模块的使用步骤
    • 创建模块

    • 在模块的src目录下新建一个名为module-info.java的描述文件,该文件专门定义模块名访问权限模块依赖等信息

      • 描述性文件中使用模块导出模块依赖来进行配置使用
    • 模块中所有未导出的包都是模块私有的,不能在模块之外被访问

      • 模块导出格式:exports 包名;
    • 一个模块要访问其他模块,必须明确指定依赖哪些模块,未明确指定依赖的模块不能访问

      • 模块依赖格式:requires 模块名;

      注意:写模块名报错,需要按下Alt + Enter提示,然后选择模块依赖

模块服务的使用

  • 模块服务的使用步骤

    • 在模块A下创建一个包myInterface,在该包下提供一个接口Inter

      public interface Inter{
          void run();
      }
      
    • myInterface包下创建一个包myImpl,在该包下提供接口的实现类Impl01

    • 在模块A下的描述性文件中添加以下配置

      • 模块导出:exports myInterface;
      • 服务提供:provides Inter with Impl01
    • 在模块B的描述性文件中添加以下配置

      • 模块依赖:requires A;
      • 声明服务接口:uses Inter;
    • 在模块B下的类中使用Intet接口提供的服务

      // ServiceLoader:一种加载服务实现的工具
      ServiceLoader<Inter> myInters = ServiceLoader.load(Inter.class);
      for (Inter i : myInters){
          i.run();
      }
      

接口组成更新

概述

  • 接口的组成

    • 常量

      public static final
      
    • 抽象方法

      public abstract
      
    • 默认方法(Java 8)

    • 静态方法(Java 8)

    • 私有方法(Java 9)

接口中的默认方法

  • 定义格式:

    public default 返回值类型 方法名(参数列表){}
    
  • 注意事项:

    • 默认方法不是抽象方法,可以被重写(不强制),重写的时候需要去掉default关键字
    • public可以省略,default不能省略

接口中的静态方法

  • 定义格式:

    public static 返回值类型 方法名(参数列表){}
    
  • 注意事项:

    • 静态方法只能提供接口名调用,不能通过实现类名对象名调用
    • public可以省略,static不能省略

接口中的私有方法

  • 概述:

    • 当两个默认方法或者静态方法中包含一段相同的代码实现时,程序可以使用私有方法将相同的实现代码抽取成一个共性方法,而这个共性方法是不需要对外使用的,因此用私有隐藏起来。
  • 定义格式:

    private (static) 返回值类型 方法名(参数列表){}
    
  • 注意事项:

    • 默认方法可以调用私有的静态方法非静态方法
    • 静态方法只能调用私有的静态方法

标题:Java模块化与接口组成(十六)
作者:wangdj
地址:https://qntop.com/articles/2024/10/28/1730130439678.html