Java 四種訪問修飾符+面向?qū)ο笤斀?/h1>
更新時(shí)間:2026年01月30日 09:49:00 作者:知我心·
本文介紹了Java中的四種訪問修飾符(private, default, protected, public)及其在面向?qū)ο缶幊蹋∣OP)中的作用,包括封裝、繼承和多態(tài),通過對比OOP中的術(shù)語和訪問修飾符的使用,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
一、先明確核心
OOP 和訪問權(quán)限的關(guān)系:
面向?qū)ο蟮暮诵氖恰赴熏F(xiàn)實(shí)世界的事物抽象成 “類”,通過類創(chuàng)建 “對象”」,而訪問權(quán)限修飾符的作用是:
- 實(shí)現(xiàn)封裝:把對象的 “隱私數(shù)據(jù)” 藏起來(比如人的銀行卡密碼),只暴露必要的 “對外接口”(比如查詢余額的方法),避免數(shù)據(jù)被亂改;
- 配合繼承:控制子類能訪問父類的哪些資源(比如父類的家族秘密,子類能繼承,外人不能碰);
- 規(guī)范多態(tài):確保子類重寫的方法,權(quán)限不會(huì)比父類更嚴(yán)格(比如父類是
public方法,子類不能改成private)。
而默認(rèn)權(quán)限(default) 是 OOP 中 “中等封裝” 的體現(xiàn) —— 只對 “自己人”(同包類)開放,對外隱藏,剛好適配 “同一模塊內(nèi)協(xié)作” 的場景。
二、四種修飾符 + 面向?qū)ο?/h2>
我們用「“人” 這個(gè)類」作為例子,結(jié)合 OOP 的封裝、繼承,逐個(gè)講清楚每種修飾符(包括默認(rèn))的作用:
1.private(私有)
OOP 封裝的核心:藏起隱私
- OOP 意義:最嚴(yán)格的封裝,把對象的 “核心隱私” 只留給自己,完全不對外暴露,避免被誤改。
- 小白場景:每個(gè)人的「銀行卡密碼」,只能自己知道、自己操作,哪怕是家人(同包類)、孩子(子類)也不能直接看。
- 代碼例子:

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

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

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

- 關(guān)鍵:OOP 的類需要和外界交互,
public就是交互的 “橋梁”,但不能把所有成員都設(shè)為public(否則就沒封裝了)。
三、訪問修飾符 + 面向?qū)ο髮φ毡?/h2>
1.、關(guān)鍵術(shù)語 + OOP 對應(yīng)
術(shù)語 小白翻譯 OOP中的作用 封裝 把隱私藏起來,只暴露必要接口 通過private/default/protected實(shí)現(xiàn),保護(hù)數(shù)據(jù)安全 繼承 子類拿父類的屬性和方法 protected控制 “子類能拿什么”,private子類拿不到多態(tài) 子類重寫父類方法,表現(xiàn)不同行為 子類重寫的方法,權(quán)限不能比父類嚴(yán)(比如父類public,子類不能是default) 類 現(xiàn)實(shí)事物的抽象模板(比如 “人”) 訪問修飾符修飾類,控制哪個(gè)包能使用這個(gè)模板 對象 模板創(chuàng)建的具體實(shí)例(比如 “李四”) 訪問修飾符修飾對象的屬性 / 方法,控制誰能操作這個(gè)實(shí)例 包 存放類的 “模塊文件夾” default權(quán)限的核心:只對同文件夾(同包)開放默認(rèn)權(quán)限 無關(guān)鍵字修飾 OOP 的 “模塊內(nèi)封裝”,適合同一模塊內(nèi)類協(xié)作
2.四種修飾符 + OOP 總結(jié)表
修飾符 核心權(quán)限 OOP核心作用 小白場景 private 僅當(dāng)前類 封裝核心隱私 銀行卡密碼 default 僅同包類 模塊內(nèi)封裝(同模塊協(xié)作) 班級群消息 protected 自己 + 同包 + 不同包子類 繼承時(shí)傳遞權(quán)限 父親傳修自行車技巧 public 所有人 對外暴露接口(類與外界交互) 打招呼功能
3.OOP 實(shí)戰(zhàn)口訣
- 屬性先設(shè)
private:封裝隱私,OOP 的基礎(chǔ)(比如年齡、密碼); - 對外接口用
public:讓別人能和你的類交互(比如sayHi()、getAge()); - 同模塊協(xié)作用
default:不用寫關(guān)鍵字,同一文件夾的類互相調(diào)用(比如班級里的工具類); - 子類要繼承用
protected:父類的功能只傳給子類,不對外暴露(比如家族技能)。
到此這篇關(guān)于Java 四種訪問修飾符的文章就介紹到這了,更多相關(guān)Java訪問修飾符內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
-
Java實(shí)現(xiàn)自定義語言和表達(dá)式解析的解釋器模式
Java解釋器設(shè)計(jì)模式通過解析自定義語言和表達(dá)式,實(shí)現(xiàn)對復(fù)雜邏輯的處理,提高程序可擴(kuò)展性和靈活性。它將語法解析和執(zhí)行過程分離,通過抽象語法樹和解釋器實(shí)現(xiàn)對語言和表達(dá)式的解析和求值,避免了硬編碼和復(fù)雜的條件判斷,提高了程序的可讀性和可維護(hù)性 2023-04-04
-
java圖片縮放實(shí)現(xiàn)圖片填充整個(gè)屏幕
這篇文章主要介紹了java圖片縮放實(shí)現(xiàn)圖片填充整個(gè)屏幕,本文提供了兩種解決方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下 2016-05-05
-
Mybatis使用useGeneratedKeys獲取自增主鍵
這篇文章主要為大家介紹了Mybatis使用useGeneratedKeys獲取自增主鍵示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪 2023-01-01
-
SpringBoot自動(dòng)裝配注解的實(shí)現(xiàn)示例
本文主要介紹了SpringBoot自動(dòng)裝配注解的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧 2026-04-04
-
IDEA2021.2配置docker如何將springboot項(xiàng)目打成鏡像一鍵發(fā)布部署
這篇文章主要介紹了IDEA2021.2配置docker如何將springboot項(xiàng)目打成鏡像一鍵發(fā)布部署,本文圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下 2021-09-09
-
Java中避免NullPointerException的方法總結(jié)
這篇文章主要介紹了Java中避免NullPointerException的方法總結(jié)的相關(guān)資料,需要的朋友可以參考下 2017-07-07
最新評論
一、先明確核心
OOP 和訪問權(quán)限的關(guān)系:
面向?qū)ο蟮暮诵氖恰赴熏F(xiàn)實(shí)世界的事物抽象成 “類”,通過類創(chuàng)建 “對象”」,而訪問權(quán)限修飾符的作用是:
- 實(shí)現(xiàn)封裝:把對象的 “隱私數(shù)據(jù)” 藏起來(比如人的銀行卡密碼),只暴露必要的 “對外接口”(比如查詢余額的方法),避免數(shù)據(jù)被亂改;
- 配合繼承:控制子類能訪問父類的哪些資源(比如父類的家族秘密,子類能繼承,外人不能碰);
- 規(guī)范多態(tài):確保子類重寫的方法,權(quán)限不會(huì)比父類更嚴(yán)格(比如父類是
public方法,子類不能改成private)。
而默認(rèn)權(quán)限(default) 是 OOP 中 “中等封裝” 的體現(xiàn) —— 只對 “自己人”(同包類)開放,對外隱藏,剛好適配 “同一模塊內(nèi)協(xié)作” 的場景。
二、四種修飾符 + 面向?qū)ο?/h2>
我們用「“人” 這個(gè)類」作為例子,結(jié)合 OOP 的封裝、繼承,逐個(gè)講清楚每種修飾符(包括默認(rèn))的作用:
1.private(私有)
OOP 封裝的核心:藏起隱私
- OOP 意義:最嚴(yán)格的封裝,把對象的 “核心隱私” 只留給自己,完全不對外暴露,避免被誤改。
- 小白場景:每個(gè)人的「銀行卡密碼」,只能自己知道、自己操作,哪怕是家人(同包類)、孩子(子類)也不能直接看。
- 代碼例子:

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

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

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

- 關(guān)鍵:OOP 的類需要和外界交互,
public就是交互的 “橋梁”,但不能把所有成員都設(shè)為public(否則就沒封裝了)。
三、訪問修飾符 + 面向?qū)ο髮φ毡?/h2>
1.、關(guān)鍵術(shù)語 + OOP 對應(yīng)
| 術(shù)語 | 小白翻譯 | OOP中的作用 |
|---|---|---|
| 封裝 | 把隱私藏起來,只暴露必要接口 | 通過private/default/protected實(shí)現(xiàn),保護(hù)數(shù)據(jù)安全 |
| 繼承 | 子類拿父類的屬性和方法 | protected控制 “子類能拿什么”,private子類拿不到 |
| 多態(tài) | 子類重寫父類方法,表現(xiàn)不同行為 | 子類重寫的方法,權(quán)限不能比父類嚴(yán)(比如父類public,子類不能是default) |
| 類 | 現(xiàn)實(shí)事物的抽象模板(比如 “人”) | 訪問修飾符修飾類,控制哪個(gè)包能使用這個(gè)模板 |
| 對象 | 模板創(chuàng)建的具體實(shí)例(比如 “李四”) | 訪問修飾符修飾對象的屬性 / 方法,控制誰能操作這個(gè)實(shí)例 |
| 包 | 存放類的 “模塊文件夾” | default權(quán)限的核心:只對同文件夾(同包)開放 |
| 默認(rèn)權(quán)限 | 無關(guān)鍵字修飾 | OOP 的 “模塊內(nèi)封裝”,適合同一模塊內(nèi)類協(xié)作 |
2.四種修飾符 + OOP 總結(jié)表
| 修飾符 | 核心權(quán)限 | OOP核心作用 | 小白場景 |
|---|---|---|---|
| private | 僅當(dāng)前類 | 封裝核心隱私 | 銀行卡密碼 |
| default | 僅同包類 | 模塊內(nèi)封裝(同模塊協(xié)作) | 班級群消息 |
| protected | 自己 + 同包 + 不同包子類 | 繼承時(shí)傳遞權(quán)限 | 父親傳修自行車技巧 |
| public | 所有人 | 對外暴露接口(類與外界交互) | 打招呼功能 |
3.OOP 實(shí)戰(zhàn)口訣
- 屬性先設(shè)
private:封裝隱私,OOP 的基礎(chǔ)(比如年齡、密碼); - 對外接口用
public:讓別人能和你的類交互(比如sayHi()、getAge()); - 同模塊協(xié)作用
default:不用寫關(guān)鍵字,同一文件夾的類互相調(diào)用(比如班級里的工具類); - 子類要繼承用
protected:父類的功能只傳給子類,不對外暴露(比如家族技能)。
到此這篇關(guān)于Java 四種訪問修飾符的文章就介紹到這了,更多相關(guān)Java訪問修飾符內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java實(shí)現(xiàn)自定義語言和表達(dá)式解析的解釋器模式
Java解釋器設(shè)計(jì)模式通過解析自定義語言和表達(dá)式,實(shí)現(xiàn)對復(fù)雜邏輯的處理,提高程序可擴(kuò)展性和靈活性。它將語法解析和執(zhí)行過程分離,通過抽象語法樹和解釋器實(shí)現(xiàn)對語言和表達(dá)式的解析和求值,避免了硬編碼和復(fù)雜的條件判斷,提高了程序的可讀性和可維護(hù)性2023-04-04
java圖片縮放實(shí)現(xiàn)圖片填充整個(gè)屏幕
這篇文章主要介紹了java圖片縮放實(shí)現(xiàn)圖片填充整個(gè)屏幕,本文提供了兩種解決方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-05-05
Mybatis使用useGeneratedKeys獲取自增主鍵
這篇文章主要為大家介紹了Mybatis使用useGeneratedKeys獲取自增主鍵示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01
SpringBoot自動(dòng)裝配注解的實(shí)現(xiàn)示例
本文主要介紹了SpringBoot自動(dòng)裝配注解的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2026-04-04
IDEA2021.2配置docker如何將springboot項(xiàng)目打成鏡像一鍵發(fā)布部署
這篇文章主要介紹了IDEA2021.2配置docker如何將springboot項(xiàng)目打成鏡像一鍵發(fā)布部署,本文圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-09-09
Java中避免NullPointerException的方法總結(jié)
這篇文章主要介紹了Java中避免NullPointerException的方法總結(jié)的相關(guān)資料,需要的朋友可以參考下2017-07-07

