首页 > 编程语言 >JAVA - 模块

JAVA - 模块

时间:2024-04-14 21:47:02浏览次数:14  
标签:JAVA 模块 hellomod module 访问 v2ch09 java

目录

模块的概念

在面向对象编程中,基础的构建要素就是类。类提供了封装,私有特性只能被具有明确访问权限的代码访问,即,只能被其所属类中的方法访问,这使得对访问情况的推断称为可能。如果某个私有变量发生了变化,那么我们就会发现一系列可能出错的方法。如果需要修改私有表示,那么就知道哪些方法会受到影响。

在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>

https://zhuanlan.zhihu.com/p/388252107

标签:JAVA,模块,hellomod,module,访问,v2ch09,java
From: https://www.cnblogs.com/czzz/p/18134736

相关文章

  • ansible模块 playbook
    推荐原生模块:大部分幂等性,能重复执行。常看所有模块:3k个https://docs.ansible.com/ansible/2.9/modules/list_of_all_modules.html  找关键字常见重要模块:service selinux hosnamefilecopycronyumscriptshell 使用方式:1、命令行  :ansible all -mshe......
  • day13- 模块和包
    这节我们学习模块和包,这块呢,我们在实际使用的过程中,首先保证自己会用就可以,其次也可以加深对Python代码的理解。1、什么是模块开始之前,那我们思考下,之前学的过变量,函数属于一个模块吗?模块呢,就是Python程序,简单来说,就是一个.py的文件,就是属于一个模块那说明我们之前的函数和变......
  • JDK 源码阅读:java.lang.Object 类
    记录下自己阅读过程的笔记,如有错误,欢迎指正!源码参考:https://github.com/kangjianwei/LearningJDK/tree/master1.基本介绍在Java中,Object类是类层次结构的根类几乎每个Java类都直接或间接继承自Object类,意味着每个类都继承了Object的方法类结构:2.源码分析2.......
  • Java调用第三方接口获取数据并存储,思路加代码
    思路:1.根据第三方接口返回的字段来创建实体类,用来接收数据2.建立连接,提供两种方式。来获取数据3.实体类转换并存储方法一:URL建立连接进行接收数据依赖<dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifa......
  • 上海携程java高级面试题(一)
    一、JVM加载Class文件的原理机制?在面试java工程师的时候,这道题经常被问到,故需特别注意。Java中的所有类,都需要由类加载器装载到JVM中才能运行。类加载器本身也是一个类,而它的工作就是把class文件从硬盘读取到内存中。在写程序的时候,我们几乎不需要关心类的加载,因为这些都是隐式......
  • java中的final和Object类
    Java中的final和Object类目录Java中的final和Object类修饰变量修饰方法修饰类(无后类)final可以防止指令重排序,保证线程安全Object类经典面试题修饰变量基本类型(值不能改变)引用类型(引用的地址不能改变)final修饰全局变量必须提前赋值final修饰局部变量可以不在声明的时候赋值,......
  • ansible常用模块 --摘抄 chaoge
    摘自:https://www.cnblogs.com/sxy-blog/p/17543471.htmlansible核心内容(模块学习)ansible执行命令结果(状态颜色)绿色:命令以用户期望的执行了,但是状态没有发生改变;黄色:命令以用户期望的执行了,并且状态发生了改变;紫色:警告信息,说明ansible提示你有更合适的用法;红色:命令错误,执......
  • Java登陆第四十二天——跨域
    浏览器拥有最基本的安全机制,同源策略。 违背同源策略的交互,会被浏览器认为是不安全的交互,所以不解析。什么是域?(源) 协议,域名,端口。什么是跨域? 访问不同的域。 即便协议,域名相同,端口号不一样也会违背同源策略。前后端分离后,前端服务器负责视图,后端服务器负责数据。 不......
  • JavaScript判断图片是否已经加载完毕的方法汇总_javascript技巧
    JavaScript判断图片是否已经加载完毕的方法汇总_javascript技巧 在网上有很多关于判断图片是否已经加载完毕的文章,但是有的浏览器并不适合,下面小编给大家分享一些有关JavaScript判断图片是否已经加载完毕方法汇总,具体内容如下所示:一.onload事件通过监听图片的onload事件,可......
  • java 单例模式
    单例模式(SingletonPattern)是Java中最简单的设计模式之一,这种类型的设计模式属于创建型模式。目的是确保一个类只有一个实例,并提供一个全局访问点来获取这个实例。这样做可以节省系统资源,并且保证某些类在系统中只存在一个实例。主要解决:一个全局使用的类频繁地创建与......