Java修飾符是用來(lái)定義類(lèi)、方法、變量和構(gòu)造方法的訪問(wèn)權(quán)限,可以控制各種不同的訪問(wèn)級(jí)別。Java中的修飾符包括四種訪問(wèn)控制修飾符——private、protected、public及默認(rèn)訪問(wèn)控制修飾符——default,另外還有兩種修飾符——static和final。
其中,public、protected和private叫做訪問(wèn)修飾符。
咱可以通過(guò)在某些代碼左邊加上這些關(guān)鍵字來(lái)增強(qiáng)它們的含義和可用性。
訪問(wèn)修飾符
在 Java 中,可以使用訪問(wèn)修飾符來(lái)控制類(lèi)、變量、方法和構(gòu)造方法的訪問(wèn)級(jí)別。Java 中有四種訪問(wèn)修飾符:
default修飾符:默認(rèn)的訪問(wèn)級(jí)別,同一包中可以訪問(wèn)。如果一個(gè)類(lèi)或接口中沒(méi)有使用任何訪問(wèn)修飾符,則默認(rèn)為default級(jí)別。默認(rèn)的訪問(wèn)級(jí)別聲明符沒(méi)有關(guān)鍵字。
public修飾符:可以訪問(wèn)任何地方都可以使用,它們的可見(jiàn)性最廣。被聲明為public的類(lèi)、方法、變量和接口可以被任何其它類(lèi)訪問(wèn)。
private修飾符:只能被同一個(gè)類(lèi)內(nèi)部的其他方法訪問(wèn),被聲明為private的方法、變量和內(nèi)部類(lèi)只能被所屬類(lèi)訪問(wèn)。
protected修飾符:可以被同一包中的類(lèi)訪問(wèn),以及繼承該類(lèi)的子類(lèi)訪問(wèn)。
其他修飾符
static:被static關(guān)鍵字修飾的變量會(huì)被定為靜態(tài)變量。靜態(tài)變量是基于類(lèi)來(lái)共享的,因此只能創(chuàng)建一個(gè)靜態(tài)變量的實(shí)例。可以隨時(shí)在不生成類(lèi)對(duì)象實(shí)例的情況下使用靜態(tài)變量。
final:被final關(guān)鍵字修飾的變量只可賦值一次,一旦賦值后,不能被更改。そして、被 final 修飾的方法不能被子類(lèi)繼承、修改和覆蓋,被 final 修飾的類(lèi)不能被繼承。
應(yīng)用方面,Java 代碼中訪問(wèn)權(quán)限的管理與現(xiàn)實(shí)生活中我們?nèi)粘K鎸?duì)的實(shí)際問(wèn)題有相似之處,例如在公司中每個(gè)部門(mén)都有其對(duì)應(yīng)的權(quán)限等級(jí),只有獲得相應(yīng)的權(quán)限才能進(jìn)入,在類(lèi)的設(shè)計(jì)中使用不同的訪問(wèn)控制權(quán)限也有同樣的效果。
對(duì)于我們開(kāi)發(fā)者,學(xué)習(xí)并靈活運(yùn)用這些修飾符可以使代碼更加規(guī)范,也能更好的被維護(hù)和擴(kuò)展。