Java9模块化简明例子

个人对Java9的模块化的理解

个人对Java9模块化的简单理解是:模块是 package 的容器,是 package 的上一层。在模块里,可以输出(管理)当前模块哪些包是对外暴露(exports)的。同样的,当前模块需要别的模块,就要引用(requires)进来。

Java9模块化的例子

使用Idea创建一个项目 java-9-module-demo,添加两个模块:

  • module-main:主模块
  • module-user:用户模块

这个例子将演示模块化的作用和写法,实现了以下功能:

  • 主模块需要用户模块中的 User 类。
  • 用户模块暴露(输出)了 User 类所在的包,因此主模块可以使用(可以成功 requires)。
  • 主模块无法访问用户模块中的 HiddenClass 类,因为用户模块没有输出(exports)这个类所在的包。

项目结构如下图所示:

java-9-module-demo

主类

package main;

import user.User;

/**
 * 主类
 *
 * @author Zebe
 */
public class Main {

    /**
     * 运行入口
     *
     * @param args 运行参数
     */
    public static void main(String[] args) {
        // 调用 module-user 模块中的 User 类
        User user = new User();
        user.sayHello();
    }

}

用户类

package user;

/**
 * 用户类
 *
 * @author Zebe
 */
public class User {

    /**
     * 打招呼
     */
    public void sayHello() {
        System.out.println("hello, 我是 module-user 模块 user 包里面的 User 类!");
    }

}

隐藏类

package invisible;

/**
 * 隐藏类
 *
 * @author Zebe
 */
public class HiddenClass {

    public void test() {
        System.out.println("Test");
    }

}

主模块信息定义

/**
 * module-main 主模块信息定义
 * @author Zebe
 */
module module.main {
    // 需要 module-user 模块
    requires module.user;

}

用户模块信息定义

/**
 * module-user 用户模块信息定义
 * @author Zebe
 */
module module.user {
    // 输出(对外暴露)整个 user 包
    exports user;
    //exports invisible;
}

小结

眼过千遍,不如手过一遍。对于编程的学习,在于积累和不断的练习。


本文首发于个人独立博客,文章链接:http://www.zebe.me/java-9-module-demo

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值