Java 四種訪問修飾符+面向對象詳解
一、先明確核心
OOP 和訪問權限的關系:
面向對象的核心是「把現實世界的事物抽象成 “類”,通過類創(chuàng)建 “對象”」,而訪問權限修飾符的作用是:
- 實現封裝:把對象的 “隱私數據” 藏起來(比如人的銀行卡密碼),只暴露必要的 “對外接口”(比如查詢余額的方法),避免數據被亂改;
- 配合繼承:控制子類能訪問父類的哪些資源(比如父類的家族秘密,子類能繼承,外人不能碰);
- 規(guī)范多態(tài):確保子類重寫的方法,權限不會比父類更嚴格(比如父類是
public方法,子類不能改成private)。
而默認權限(default) 是 OOP 中 “中等封裝” 的體現 —— 只對 “自己人”(同包類)開放,對外隱藏,剛好適配 “同一模塊內協(xié)作” 的場景。
二、四種修飾符 + 面向對象
我們用「“人” 這個類」作為例子,結合 OOP 的封裝、繼承,逐個講清楚每種修飾符(包括默認)的作用:
1.private(私有)
OOP 封裝的核心:藏起隱私
- OOP 意義:最嚴格的封裝,把對象的 “核心隱私” 只留給自己,完全不對外暴露,避免被誤改。
- 小白場景:每個人的「銀行卡密碼」,只能自己知道、自己操作,哪怕是家人(同包類)、孩子(子類)也不能直接看。
- 代碼例子:

- 關鍵:OOP 的封裝不是 “藏起來不讓用”,而是 “通過可控接口用”,
private就是實現這個的核心。
2.default(默認,無關鍵字)
OOP 的 “模塊內封裝”:只對自己人開放
- OOP 意義:中等封裝,只對 “同一模塊(同包)” 的類開放,不同模塊(不同包)隱藏,適合模塊內協(xié)作(比如一個 “學生管理模塊” 里的類互相調用)。
- 小白場景:每個人的「班級群聊消息」,只有同班同學(同包類)能看、能回復,隔壁班(不同包)的人看不到。
- 代碼例子(結合 OOP):

- 關鍵:OOP 中很多 “輔助類” 不需要對外暴露,用
default剛好能實現 “模塊內復用,模塊外隱藏”,避免接口混亂。
3.protected(受保護)
OOP 繼承的 “權限傳遞”:只給子類開放
- OOP 意義:配合繼承,父類的
protected成員能被子類訪問(哪怕不同包),但對外人隱藏,實現 “家族技能傳承”。 - 小白場景:父親的「修自行車技巧」,只能傳給兒子(子類),外人(不同包非子類)不能學,但兒子哪怕搬到外地(不同包),也能繼承這個技巧。
- 代碼例子:

- 關鍵:OOP 的繼承不是 “全盤繼承”,
protected精準控制了 “該傳的傳,不該傳的不傳”,既傳承了功能,又保護了隱私。
4.public(公共)
OOP 的 “對外接口”:所有人都能訪問
- OOP 意義:無封裝限制,對外暴露公共接口,讓所有對象都能使用,是類與外界交互的 “窗口”。
- 小白場景:每個人的「打招呼功能」,不管認識不認識(任何類),都能和你打招呼、你也能回應。
- 代碼例子:

- 關鍵:OOP 的類需要和外界交互,
public就是交互的 “橋梁”,但不能把所有成員都設為public(否則就沒封裝了)。
三、訪問修飾符 + 面向對象對照表
1.、關鍵術語 + OOP 對應
| 術語 | 小白翻譯 | OOP中的作用 |
|---|---|---|
| 封裝 | 把隱私藏起來,只暴露必要接口 | 通過private/default/protected實現,保護數據安全 |
| 繼承 | 子類拿父類的屬性和方法 | protected控制 “子類能拿什么”,private子類拿不到 |
| 多態(tài) | 子類重寫父類方法,表現不同行為 | 子類重寫的方法,權限不能比父類嚴(比如父類public,子類不能是default) |
| 類 | 現實事物的抽象模板(比如 “人”) | 訪問修飾符修飾類,控制哪個包能使用這個模板 |
| 對象 | 模板創(chuàng)建的具體實例(比如 “李四”) | 訪問修飾符修飾對象的屬性 / 方法,控制誰能操作這個實例 |
| 包 | 存放類的 “模塊文件夾” | default權限的核心:只對同文件夾(同包)開放 |
| 默認權限 | 無關鍵字修飾 | OOP 的 “模塊內封裝”,適合同一模塊內類協(xié)作 |
2.四種修飾符 + OOP 總結表
| 修飾符 | 核心權限 | OOP核心作用 | 小白場景 |
|---|---|---|---|
| private | 僅當前類 | 封裝核心隱私 | 銀行卡密碼 |
| default | 僅同包類 | 模塊內封裝(同模塊協(xié)作) | 班級群消息 |
| protected | 自己 + 同包 + 不同包子類 | 繼承時傳遞權限 | 父親傳修自行車技巧 |
| public | 所有人 | 對外暴露接口(類與外界交互) | 打招呼功能 |
3.OOP 實戰(zhàn)口訣
- 屬性先設
private:封裝隱私,OOP 的基礎(比如年齡、密碼); - 對外接口用
public:讓別人能和你的類交互(比如sayHi()、getAge()); - 同模塊協(xié)作用
default:不用寫關鍵字,同一文件夾的類互相調用(比如班級里的工具類); - 子類要繼承用
protected:父類的功能只傳給子類,不對外暴露(比如家族技能)。
到此這篇關于Java 四種訪問修飾符的文章就介紹到這了,更多相關Java訪問修飾符內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
springboot自帶的緩存@EnableCaching用法
這篇文章主要介紹了springboot自帶的緩存@EnableCaching用法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-08-08
SpringBoot集成WebSocket的兩種方式(JDK內置版和Spring封裝版)
這篇文章主要介紹了SpringBoot集成WebSocket的兩種方式,這兩種方式為JDK內置版和Spring封裝版,本文結合示例代碼給大家介紹的非常詳細,需要的朋友可以參考下2023-06-06
SpringBoot快速接入OpenAI大模型的方法(JDK8)
本文介紹了如何使用AI4J快速接入OpenAI大模型,并展示了如何實現流式與非流式的輸出,以及對函數調用的使用,AI4J支持JDK8,適用于多種應用場景,包括Spring Boot項目,感興趣的朋友一起看看吧2025-02-02

