模塊的基本使用
模塊使用步驟
- 創建模塊(創建模塊,創建包,創建類,定義方法)
-創建兩個模塊myOne,myTwo- 在模塊的src目錄下創建module-info.java的描述性檔案,該檔案專門定義模塊名,訪問權限,模塊依賴等資訊
-描述性檔案中使用模塊匯出和模塊依賴來進行配置并使用- 模塊中所有未匯出的包都是模塊私有的,是不能在模塊之外被訪問的
-在myOne這個模塊下的描述性檔案中配置模塊匯出
-模塊匯出格式:exports 包名;- 一個模塊要訪問其他的模塊,必須明確指定依賴哪些模塊,未指明依賴的模塊不能訪問
-在myTwo模塊下的描述性檔案中配置依賴關系
-模塊依賴格式:require 模塊名;
-注意:模塊名報錯,需要按下Alt+Enter提示,然后選擇模塊依賴- 在myTwo這個模塊的類中使用依賴模塊下的內容

//老師類
public class Teacher {
public void teach(){
System.out.println("老師教書");
}
}
//學生類
public class Student {
public void study(){
System.out.println("學生學習");
}
}
//模塊匯出配置
module myOne {
//匯出了com.chawaner_01,但沒有匯出com.chawaner_02
exports com.chawaner_01;
}
//模塊依賴配置
module myTwo {
requires myOne;
}
測驗1:
//測驗類:在模塊myTwo中使用模塊myOne中的內容
public class Test01 {
public static void main(String[] args) {
Teacher te = new Teacher();
te.teach();
}
}
運行結果:因為匯出了myOne模塊下的com.chawaner_01,所以Teacher可以使用,運行無誤
老師教書
測驗2:因為沒有匯出myOne模塊下的com.chawaner_02,所以Student不能使用

模塊化概述
Java9推出了模塊化系統,讓Java實作了輕量化,

模塊服務的使用

在myOne模塊下定義一個介面MyService
//定義介面
public interface MyService {
void service();
}
定義兩個類Chawaner 和 Dounaifen,分別實作 Myservice 介面,重寫 service() 方法
public class Chawaner implements MyService {
@Override
public void service() {
System.out.println("茶碗兒");
}
}
public class Dounaifen implements MyService {
@Override
public void service() {
System.out.println("豆奶粉");
}
}
在模塊 myOne 中匯出 com.chawaner_03 ,并指定 MyService 的實作類為 Chawaner
module myOne {
exports com.chawaner_01;
exports com.chawaner_03;
//服務提供:指定MyService的實作類為Chawaner
//只需要提供具體的實作類
provides MyService with Chawaner;
}
在 myTwo 這個模塊下的描述性檔案中添加配置,宣告服務介面為MyService
module myTwo {
requires myOne;
//使用介面
//面向介面編程,只需要加載介面
uses MyService;
}
在myTwo這個模塊的類中使用MyService介面提供的服務,
ServiceLoader:一種加載服務實作的工具
public class Test01 {
public static void main(String[] args) {
//ServiceLoader.load(介面.class):加載服務
//面向介面編程,只需要加載介面
ServiceLoader<MyService> myServices = ServiceLoader.load(MyService.class);
//遍歷服務,拿到介面
for (MyService myService : myServices) {
//介面呼叫方法
//實際上是指定的介面的實作類,呼叫重寫的service()方法
myService.service();
}
}
}
運行結果:
茶碗兒
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/544707.html
標籤:其他
上一篇:Python迭代器是啥?
下一篇:學習筆記——Git命令
