Java 中的包以及如何使用它們?

已發表: 2022-04-18

Java 中的包用於對相關的類、接口和子包進行分組。 我們使用 Java 包來避免命名衝突,因為在兩個不同的包中可以有兩個同名的類。 此外,使用 Java 包,搜索、定位和使用接口、類、註釋和枚舉變得更加容易。

使用 Java 編程語言編寫軟件涉及許多單獨的類,只有將相關的類和接口組織成包才有意義。 在某種程度上,您可以將 Java 包與我們用來組織各種文件並保持工作整潔的計算機中的文件夾進行比較。

本指南將討論 Java 中不同類型的包以及如何使用它們。

目錄

Java中的包類型

Java 中的包根據用戶是否定義它們進行分類。 兩種Java包是:

  • 內置包
  • 用戶自定義包

1. 內置包

預定義或內置的 Java 包作為 Java 開發工具包 (JDK) 的一部分出現,由許多屬於 Java API 的預定義類和接口組成。 Java中一些常用的內置包如下:

  • java.io:包含支持輸入/輸出操作的類。
  • java.lang:這個內置包是自動導入的,包含語言支持類。
  • java.util:包含實現數據結構的實用類,如字典和支持、鍊錶、日期和時間操作等
  • java.net:包含支持網絡操作的類。

我們必須使用 import 語句來導入任何內置的 Java 包並使用它包含的類。

一個簡單的例子來展示 Java.util 包的 ArrayList 類的使用,如下所示:

包示例;

導入 java.util.ArrayList;

類 BuiltInPackage {

公共靜態無效主要(字符串[]參數){

ArrayList<Integer> myList = new ArrayList<>(3);

myList.add(3);

myList.add(2);

myList.add(1);

System.out.println(“列表有元素:” + myList);

}

}

輸出:

該列表包含以下元素: [3, 2, 1]

在上面的 Java.util.ArrayList 示例中,Java 是頂級包,util 是子包,ArrayList 是子包 util 中存在的類。

在 Java 中導入包

如前面的示例所示,Java 有一個 import 語句,可以讓我們導入整個包或僅使用包中定義的某些接口和類。

import 語句的一般語法是:

  • 導入包名。類名; //只導入某個類
  • import package.name.* //導入整個包

例如,導入 java.util.Date; 僅導入 Date 類,而 import java.io.*; 導入 java.io 包包含的所有內容。

但是,在 Java 中 import 語句是可選的,如果我們想使用某個包中的類或接口,我們可以使用它的完全限定名,如下所示:

類 MyClass 實現 java.util.Date {

//身體

}

2. 用戶自定義包

從名稱中可以看出,用戶定義的包是由用戶創建的,用於對類、接口和子包進行分組。

創建用戶自定義包

要在 Java 中創建用戶定義的包,我們將為我們的包選擇一個名稱,並使用 package 命令作為 Java 源文件中的起始語句。 例如,我們將使用以下語句創建一個名為 ExamplePackage 的包:

包示例包;

package 語句指定我們定義的類所屬的包。 如果我們不使用 package 語句,類名將被放入 Java 中沒有名稱的默認包中。

從世界頂級大學學習在線軟件開發課程。 獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。

在 Java 包中創建一個類

一旦我們創建了包,下一步就是在包中創建一個類。 為此,我們將在程序的第一條語句中聲明包名,然後將類作為包的一部分。

下面給出了一個簡單的程序來展示如何在 Java 包中創建一個類。 在給定的示例中,我們在包 ExamplePackage 中創建了一個類 Calculate。

包示例包;

公共類計算{

公共 int add(int p, int q){

返回 p+q;

}

公共靜態無效主要(字符串參數[]){

計算 obj = new Calculate();

System.out.println(obj.add(70, 12));

}

}

輸出: 82

Java 將包存儲在文件系統目錄中。 因此,上述程序將保存在一個名為 Calculate.java 的文件中,並存儲在名為 ExamplePackage 的目錄中。 編譯文件後,Java 將創建一個“.class”文件並將其存儲在 ExamplePackage 目錄中。

現在,您可以在另一個程序中使用 ExamplePackage 包。 就是這樣:

導入 ExamplePackage.Calculate;

公開課演示{

公共靜態無效主要(字符串參數[]){

計算 obj = new Calculate();

System.out.println(obj.add(200, 523));

}

}

輸出: 723

在上面的例子中,我們已經導入了包 ExamplePackage 來使用類Calculate。 將包導入為 ExamplePackage.Calculate 僅導入 Calculate 類。 但是,如果 ExamplePackage 包中有多個類,則可以使用以下 import 語句來使用包中的所有類:

導入示例包。*;

在導入另一個包時在一個包內創建一個類

要在導入另一個包的同時在一個包內創建一個類,我們將首先聲明包名,然後導入另一個包。 以下示例演示了相同的內容:

包裝其他包裝; //聲明一個包

導入 ExamplePackage.Calculate; //導入一個包

公共類示例{

公共靜態無效主要(字符串參數[]){

計算 obj = new Calculate();

System.out.println(obj.add(300, 700));

}

}

輸出: 1000

在上面的例子中,我們聲明包OtherPackage,從包ExamplePackage中導入類Calculate,然後創建類Example。

使用完全限定名稱導入類

我們可以通過使用完全限定名稱來避免導入語句。 使用完全限定的名稱只能使包的聲明類可訪問。 但是我們每次訪問類或接口時都需要使用完全限定名。 當兩個包具有相同的類名時,使用完全限定名導入類會派上用場。

以下示例說明了相同的情況:

1.計算.java

包示例包;

公共類計算{

公共 int add(int x, int y){

返回 x+y;

}

公共靜態無效主要(字符串參數[]){

計算 obj = new Calculate();

System.out.println(obj.add(20, 50));

}

}

2. 演示.java

包裝其他包裝; //聲明一個包

公開課演示{

公共靜態無效主要(字符串參數[]){

ExamplePackage.Calculate obj = new ExamplePackage.Calculate(); //使用完全限定名而不是導入

System.out.println(obj.add(200, 100));

}

}

輸出: 300

在下面的示例中,我們使用完全限定名稱 ExamplePackage.Calculate 來創建它的對象,而不是導入包。

3. Java中的子包

現在我們已經了解了 Java 包以及如何創建它們,讓我們了解 Java 中子包的概念。

子包是另​​一個包內的包,用於進一步對包進行分類。 換句話說,如果我們在 ExamplePackage 包中創建一個包 multiply ,那麼 multiply 就是子包。 因此,如果我們想在這個子包中創建一個類乘法,那麼子包應該在開始時有一個聲明。

以下程序演示了 Java 子包的概念:

包 ExamplePackage.multiply; //聲明子包

公共類乘法{

整數乘積(整數 p,整數 q){

返回 p*q;

}

}

現在,如果我們想使用乘法類,我們可以:

  1. 使用語句 import ExamplePackage.multiply 導入它; 或者
  2. 使用完全限定名稱,例如 ExamplePackage.multiply.Multiplication obj = new ExamplePackage.multiply.Multiplication();

前進之路

Java 中的包可以是內置包,也可以是用戶定義的,它們對於更好地訪問和管理代碼至關重要。 Java 包的概念對於軟件開發領域的任何人都至關重要。

upGrad 的軟件工程與工作相關的 PG 認證是一個為期 5 個月的在線課程,可以幫助您掌握編程技能並為軟件角色做好準備。 該計劃側重於 Java、JavaScript、CSS3、HTML5 等關鍵技能,專為想要學習編程的新生設計。

節目亮點:

  • 專注於 MERN/雲原生
  • 500 多個內容小時
  • 50+現場會議
  • 350 多個小時的實踐培訓
  • 五個行業項目
  • 360 度學習支持
  • 與行業專家交流

註冊 今天,向最好的人學習!

什麼是包及其類型?

包是相關 Java 實體的集合,例如類、子類、接口、註釋和枚舉。 它還可以包含子包。 Java 中的包有兩種類型——內置包和用戶自定義包。

為什麼我們在 Java 中使用包?

我們在 Java 中使用包來防止命名衝突,使搜索、定位和使用類、接口、註釋和枚舉更容易,控制訪問和數據封裝。

Java 中的包級訪問是什麼?

在未指定訪問修飾符的情況下,Java 中的包級別訪問是 Java 提供的默認訪問級別。 訪問修飾符的作用是限制對其應用的類、變量或方法的可訪問性。