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

模块化

模块的基本使用

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

    • 在模块的 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

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3188 引用 • 8214 回帖
  • 模块化
    3 引用 • 3 回帖
  • 接口组成
    1 引用

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...