创建模块
在模块的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 返回值类型 方法名(参数列表){}
注意事项:
定义格式:
public static 返回值类型 方法名(参数列表){}
注意事项:
概述:
定义格式:
private (static) 返回值类型 方法名(参数列表){}
注意事项: