首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Java 面向對象核心(三):包機制與訪問權限控制實戰

     編輯:Java 綜合教學

Java 面向對象核心(三):包機制與訪問權限控制實戰

包是 Java 組織代碼、避免命名衝突、實現訪問控制的核心機制。本文通過完整的目錄結構演示、編譯運行命令、跨包訪問實例,徹底講透包的創建、導入與權限邊界。

包的核心作用

  1. 標準庫組織:java.lang、java.util 等皆為層次化包結構。項目代碼規劃:防止類名衝突,如 com.company.module.ClassName。
  2. 訪問權限賦予:同包類享有默認訪問權限,構成「包私有」封裝層級。

包命名規範

  • 全小寫、點分隔層級:com.iotek.entity。
  • 唯一前綴:推薦使用公司域名倒序(如 com.google、org.apache)。

完整實戰演示:Dog 與 DogTest

1. 目錄結構規劃

D:\javastudy\package\
├── com\iotek\entity\Dog.java
└── com\iotek\test\DogTest.java

2. Dog.java(實體類)

package com.iotek.entity;

public class Dog {
    public String name;  // 必須 public,否則跨包不可見
    public int age;

    public void show() {
        System.out.println(name + "------" + age);
    }
}

3. DogTest.java(測試類,不同包)

package com.iotek.test;
import com.iotek.entity.Dog;  // 導入具體類

public class DogTest {
    public static void main(String[] args) {
        Dog dog = new Dog();
        dog.name = "旺財";
        dog.age = 5;
        dog.show();
    }
}

編譯與運行命令(關鍵步驟)

# 進入 package 父目錄 D:\javastudy\package
javac -d . com\iotek\entity\Dog.java
javac -d . com\iotek\test\DogTest.java
java com.iotek.test.DogTest

-d . 表示編譯輸出到當前目錄,自動生成包層級目錄結構。

訪問權限驗證實驗

修飾符同包類不同包子類不同包非子類
public✓✓✓
protected✓✓✗
默認✓✗✗
private✓✗✗

實驗證明:Dog 中 name 若無 public,DogTest 編譯報錯「不可見」。

導入方式對比

  • 全限定名:com.iotek.entity.Dog dog = new com.iotek.entity.Dog(); —— 臨時用、避免衝突。
  • import 單類:import com.iotek.entity.Dog; —— 最常用、可讀性高。
  • import 整包:import com.iotek.entity.*; —— 慎用,易引入無關類。

最佳實踐清單

  1. 源碼目錄嚴格映射包結構,配合 javac -d 自動輸出。
  2. 跨包訪問必須 public 類與成員,或使用繼承配合 protected。
  3. 同包內優先用默認權限,減少 public 暴露面。
  4. 工程中統一採用「域名倒序 + 模塊名」命名包,確保全局唯一。

掌握包機制,是從「寫類」進階到「架構項目」的必經之路。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved