更新時(shí)間:2022-07-28 來(lái)源:黑馬程序員 瀏覽量:
在Java中,針對(duì)類(lèi)、成員方法和屬性提供了4種訪(fǎng)問(wèn)級(jí)別,分別是private、default、protected和public。接下來(lái)通過(guò)一個(gè)圖將這4種控制級(jí)別由小到大依次列出,如下圖所示。
訪(fǎng)問(wèn)控制級(jí)別由小到大
上圖中展示了Java中的4種訪(fǎng)問(wèn)控制級(jí)別,具體介紹如下。
①private(當(dāng)前類(lèi)訪(fǎng)問(wèn)級(jí)別):如果類(lèi)的成員被private訪(fǎng)問(wèn)控制符來(lái)修飾,則這個(gè)成員只能被該類(lèi)的其他成員訪(fǎng)問(wèn),其他類(lèi)無(wú)法直接訪(fǎng)問(wèn)。類(lèi)的良好封裝就是通過(guò)private關(guān)鍵字來(lái)實(shí)現(xiàn)的。
②default(包訪(fǎng)問(wèn)級(jí)別):如果一個(gè)類(lèi)或者類(lèi)的成員不使用任何訪(fǎng)問(wèn)控制符修飾,則稱(chēng)它為默認(rèn)訪(fǎng)問(wèn)控制級(jí)別,這個(gè)類(lèi)或者類(lèi)的成員只能被本包中的其他類(lèi)訪(fǎng)問(wèn)。
③protected(子類(lèi)訪(fǎng)問(wèn)級(jí)別):如果一個(gè)類(lèi)的成員被protected訪(fǎng)問(wèn)控制符修飾,那么這個(gè)成員既能被同一包下的其他類(lèi)訪(fǎng)問(wèn),也能被不同包下該類(lèi)的子類(lèi)訪(fǎng)問(wèn)。
④public(公共訪(fǎng)問(wèn)級(jí)別):這是一個(gè)最寬松的訪(fǎng)問(wèn)控制級(jí)別,如果一個(gè)類(lèi)或者類(lèi)的成員被public訪(fǎng)問(wèn)控制符修飾,那么這個(gè)類(lèi)或者類(lèi)的成員能被所有的類(lèi)訪(fǎng)問(wèn),不管訪(fǎng)問(wèn)類(lèi)與被訪(fǎng)問(wèn)類(lèi)是否在同一個(gè)包中。
接下來(lái)通過(guò)一個(gè)表將這4種訪(fǎng)問(wèn)級(jí)別更加直觀(guān)地表示出來(lái),如下表所示。
訪(fǎng)問(wèn)控制級(jí)別
注意:如果一個(gè)Java源文件中定義的所有類(lèi)都沒(méi)有使用public修飾,那么這個(gè)Java原文件的文件名可以是一切合法的文件名;如果一個(gè)源文件中定義了一個(gè)public修飾的類(lèi),那么這個(gè)源文件的文件名必須與public修飾的類(lèi)的類(lèi)名相同。
計(jì)算機(jī)網(wǎng)絡(luò)的功能有哪些?
2022-07-27MapReduce分布式計(jì)算框架:MapReduce運(yùn)行模式是什么?
2022-07-27MySQL數(shù)據(jù)庫(kù)存儲(chǔ)引擎【InnoDB/MyISAM/MEMORY 】
2022-07-25數(shù)據(jù)庫(kù)中事務(wù)的四大特性分別是什么?
2022-07-25Java現(xiàn)在還火嗎?目前市場(chǎng)趨勢(shì)怎么樣?
2022-07-22Java培訓(xùn):java的Runtime類(lèi)是什么意思?
2022-07-22