目录
模块的概念
在面向对象编程中,基础的构建要素就是类。类提供了封装,私有特性只能被具有明确访问权限的代码访问,即,只能被其所属类中的方法访问,这使得对访问情况的推断称为可能。如果某个私有变量发生了变化,那么我们就会发现一系列可能出错的方法。如果需要修改私有表示,那么就知道哪些方法会受到影响。
在java 中,包提供了更高一级的组织方式,包是类的集合。包也提供了一种封装级别,具有包访问权限的所有特性(无论是共有的还是私有的)都只能被同一个包中的方法访问。
但是在大型系统中,这种级别的访问控制仍显不足。所有共有特性(即在包的外部也可以访问的特性)可以从任何地方访问。假设我们想要修改或剔除一个很少使用的特性,如果它是共有的,那么就没有办法推断这个变化所产生的影响。
Java 平台的设计者们在面对一个规模超大且盘根错节的代码时,认为他们需要一种能够提供更多控制能力的构建机制。他们研究了现有模块系统(OSGi),发现它们都不使用于他们的问题。于是,设计了一个新的系统,称为Java 平台模块系统。现在成了Java 语言和虚拟机的一部分。这个系统已经成功地用于Java API 模块化
一个Java 平台模块包含:
- 一个包集合
- 可选地包含资源文件和像本地库这样的其他文件
- 一个有关模块中可访问的包的列表
- 一个有关这个模块依赖的所有其他模块的列表
对模块命名
模块化的 "Hello,World" 程序
module-info.java:
module v2ch09.hellomod{
}
HelloWorld.java:
package com.horstmann.hello;
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, Modular World");
}
}
//编译
PS E:\javaProject> javac v2ch09.hellomod/module-info.java v2ch09.hellomod/com/horstmann/hello/HelloWorld.java
v2ch09.hellomod\module-info.java:1: 警告: [module] 模块名称组成部分 v2ch09 应避免以数字结尾
module v2ch09.hellomod{
^
1 个警告
//执行
PS E:\javaProject> java --module-path v2ch09.hellomod -m v2ch09.hellomod/com.horstmann.hello.HelloWorld
Hello, Modular World
PS E:\javaProject>
标签:JAVA,模块,hellomod,module,访问,v2ch09,java From: https://www.cnblogs.com/czzz/p/18134736