最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java由淺入深帶你了解什么是包package

 更新時間:2022年03月22日 16:59:04   作者:K穩(wěn)重  
為了更好地組織類,Java 提供了包機制,用于區(qū)別類名的命名空間,一個包(package)可以定義為一組相互聯(lián)系的類型(類、接口、枚舉和注釋),為這些類型提供訪問保護和命名空間管理的功能

什么是包

包 (package) 是組織類的一種方式.

使用包的主要目的是保證類的唯一性.

例如, 你在代碼中寫了一個 Test 類. 然后你的同事也可能寫一個 Test 類. 如果出現(xiàn)兩個同名的類, 就會沖突, 導致 代碼不能編譯通過

1.導入包中的類

?Java 中已經(jīng)提供了很多現(xiàn)成的類供我們使用

①:例如打印數(shù)組:

public class TestDemo{
    public static void main(String[] args) {
        int[] array = {1,2,3,4,5};
        System.out.println(Arrays.toString(array));
    }
}

用Arrays就需要導入包,看圖:

?如果最上面的這行代碼不寫就會報錯,看圖:

那么怎么導入上面的這個包呢,當我們寫出Arrays這個代碼,IDEA會自動跳出選項讓你選擇,選擇第一項你直接回車,就會幫你導入這個包??磮D:

②:再舉例:

Date這個類是定義日期的,也是Java類庫寫好的

public class TestDemo {
    public static void main(String[] args) {
        java.util.Date date = new java.util.Date();//在我們不導包時候手寫
        // 得到一個毫秒級別的時間戳
        System.out.println(date.getTime());
   }
}

可以使用 java.util.Date 這種方式引入 java.util 這個包中的 Date 類

但是這種寫法比較麻煩一些, 這個時候就可以用上面的寫法,可以使用 import 語句導入包

import java.util.Date;
public class TestDemo {
    public static void main(String[] args) {
        Date date = new Date();
        // 得到一個毫秒級別的時間戳
        System.out.println(date.getTime());
   }
}

注意事項:

可以導入一個具體的類,不能導入具體的包

:導入util包,報錯

:導入具體的類

③:再舉例:

如果需要使用 java.util 中的其他類, 可以使用 import java.util.*

import java.util.*;
public class TestDemo {
    public static void main(String[] args) {
        Date date = new Date();
        // 得到一個毫秒級別的時間戳
        System.out.println(date.getTime());
   }
}

:不報錯,這個*可以理解為通配符,代表導入這個包底下所有的類

疑問:util底下有很多類,難道一下子全部導入嗎?不會,Java處理的時候,需要誰,他才會那誰。

④:但是我們更建議顯式的指定要導入的類名. 否則還是容易出現(xiàn)沖突的情況.

舉例:

import java.util.*;
import java.sql.*;
public class TestDemo {
    public static void main(String[] args) {
        // util 和 sql 中都存在一個 Date 這樣的類, 此時就會出現(xiàn)歧義, 編譯出錯
        Date date = new Date();
        System.out.println(date.getTime());
   }
}
// 編譯出錯
Error:(5, 9) java: 對Date的引用不明確
  java.sql 中的類 java.sql.Date 和 java.util 中的類 java.util.Date 都匹配

在這種情況下需要使用完整的類名?

注意事項:

import 和 C++ 的 #include 差別很大. C++ 必須 #include 來引入其他文件內(nèi)容, 但是 Java 不需要. import 只是為了寫代碼的時候更方便. import 更類似于 C++ 的 namespace 和 using

知識點

import和package的區(qū)別

package:"包",,指:類所在的包

import:"引入",指:引入類中需要的類

如果我們要用到一些Java類庫里面的代碼我們都需要通過import導入

2.靜態(tài)導入

使用 import static 可以導入包中的靜態(tài)的方法和字段.

①舉例:

import static java.lang.System.*;
public class Test {
    public static void main(String[] args) {
        out.println("hello");
   }
}

?這樣System.out.println("hello");就可以寫成out.println("hello");

②再舉例:

import static java.lang.Math.*;
public class TestDemo {
    public static void main(String[] args) {
        double x = 30;
        double y = 40;
        // 靜態(tài)導入的方式寫起來更方便一些. 
        // double result = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
        double result = sqrt(pow(x, 2) + pow(y, 2));
        System.out.println(result);
   }
}

再寫代碼當中Math.就可以去掉。

3.將類放到包中

基本規(guī)則:

在文件的最上方加上一個 package 語句指定該代碼在哪個包中.

包名需要盡量指定成唯一的名字, 通常會用公司的域名的顛倒形式(例如 com.xuexiao.demo1 ).?

包名要和代碼路徑相匹配. 例如創(chuàng)建 com.xuexiao.demo1 的包, 那么會存在一個對應的路徑 com/xuexiao/demo1 來存 儲代碼.

如果一個類沒有 package 語句, 則該類被放到一個默認包中.

操作步驟:

?1) 在 IDEA 中先新建一個包: 右鍵 src -> 新建 -> 包

2) 在彈出的對話框中輸入包名, 例如 com.xuexiao.demo1?,點回車

?3) 在包中創(chuàng)建類, 右鍵包名 -> 新建 -> 類, 然后輸入類名即可

?4) 此時可以看到我們的磁盤上的目錄結構已經(jīng)被 IDEA 自動創(chuàng)建出來了

5) 同時我們也看到了, 在新創(chuàng)建的 Test.java 文件的最上方, 就出現(xiàn)了一個 package 語句

4.包的訪問權限控制

?我們已經(jīng)了解了類中的 public 和 private. private 中的成員只能被類的內(nèi)部使用.

如果某個成員不包含 public 和 private 關鍵字, 此時這個成員可以在包內(nèi)部的其他類使用, 但是不能在包外部的類使 用.

舉例:

下面的代碼給了一個示例. Demo1 和 Demo2 是同一個包中, Test 是其他包中.

?Demo1.java

package com.bili.demo;
public class Demo1 {
    int value = 0;
}

Demo2.java

package com.bili.demo; 
public class Demo2 { 
 public static void Main(String[] args) { 
 Demo1 demo = new Demo1(); 
 System.out.println(demo.value); 
 } 
}

// 執(zhí)行結果, 能夠訪問到 value 變量
10

Test.java

import com.bili.demo.Demo1; 
public class Test { 
 public static void main(String[] args) { 
 Demo1 demo = new Demo1(); 
 System.out.println(demo.value); 
 } 
} 
// 編譯出錯
Error:(6, 32) java: value在com.bili.demo.Demo1中不是公共的; 無法從外部程序包中對其進行訪問

5.常見的系統(tǒng)包

1. java.lang:系統(tǒng)常用基礎類(String、Object),此包從JDK1.1后自動導入。

2. java.lang.reflect:java 反射編程包;

3. java.net:進行網(wǎng)絡編程開發(fā)包。

4. java.sql:進行數(shù)據(jù)庫開發(fā)的支持包。

5. java.util:是java提供的工具程序包。(集合類等) 非常重要

6. java.io:I/O編程開發(fā)包。

到此這篇關于Java由淺入深帶你了解什么是包package的文章就介紹到這了,更多相關Java 包內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java基礎類學習之String詳解

    Java基礎類學習之String詳解

    這篇文章主要為大家詳細介紹了Java基礎類中String的相關知識,文中的示例代碼講解詳細,對我們學習Java有一定的幫助,需要的可以參考一下
    2022-12-12
  • Java容器源碼LinkedList原理解析

    Java容器源碼LinkedList原理解析

    這篇文章主要介紹了Java容器源碼LinkedList原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • Java使用Tesseract-OCR實戰(zhàn)教程

    Java使用Tesseract-OCR實戰(zhàn)教程

    本文介紹了如何在Java中使用Tesseract-OCR進行文本提取,包括Tesseract-OCR的安裝、中文訓練庫的配置、依賴庫的引入以及具體的代碼實現(xiàn),通過這個過程,我們將演示如何從視頻幀中提取文本
    2025-02-02
  • Spring Boot支持HTTPS步驟詳解

    Spring Boot支持HTTPS步驟詳解

    這篇文章主要介紹了Spring Boot支持HTTPS步驟詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-09-09
  • IDEA快速搭建jsp項目的圖文教程

    IDEA快速搭建jsp項目的圖文教程

    這篇文章主要介紹了IDEA快速搭建jsp項目的圖文教程,本文分步驟通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-05-05
  • Spark Streaming算子開發(fā)實例

    Spark Streaming算子開發(fā)實例

    這篇文章主要介紹了Spark Streaming算子開發(fā)實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-06-06
  • Java構造方法實例詳解(動力節(jié)點java學院整理)

    Java構造方法實例詳解(動力節(jié)點java學院整理)

    其實java構造方法很簡單,下面通過示例給大家分享java構造方法,非常不錯,具有參考借鑒價值,需要的朋友參考下
    2017-04-04
  • RateLimiter 源碼分析

    RateLimiter 源碼分析

    本文主要對ratelimiter的常用方法以及源碼進行了分析解讀,具有一定參考價值,需要的朋友可以了解下。
    2017-09-09
  • HttpServletRequest對象方法的用法小結

    HttpServletRequest對象方法的用法小結

    HttpServletRequest對象代表客戶端的請求,當客戶端通過HTTP協(xié)議訪問服務器時,HTTP請求頭中的所有信息都封裝在這個對象中,開發(fā)人員通過這個對象的相關方法,即可以獲得客戶的這些信息
    2017-03-03
  • Java類和對象習題及詳細答案解析

    Java類和對象習題及詳細答案解析

    這篇文章主要介紹了Java類和對象的相關知識,包括局部變量初始化、靜態(tài)方法、靜態(tài)導入、構造方法、代碼塊執(zhí)行順序、toString方法重寫、類變量和靜態(tài)成員變量的訪問等,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-02-02

最新評論

龙泉市| 玛纳斯县| 台东县| 塔城市| 南陵县| 莱芜市| 鸡泽县| 九江市| 电白县| 大关县| 板桥市| 宣化县| 海林市| 乾安县| 阳新县| 嘉黎县| 和田市| 深水埗区| 潞城市| 界首市| 江永县| 崇左市| 德阳市| 兴业县| 巴塘县| 安多县| 芜湖市| 富民县| 资源县| 梓潼县| 高碑店市| 巴彦淖尔市| 阿荣旗| 班玛县| 荔波县| 鹿邑县| 武夷山市| 乌拉特中旗| 潍坊市| 麻阳| 石棉县|