Java 通過修飾符來控制類、屬性和方法的訪問權限和其他功能,通常放在語句的最前端。例如:
Java 的修飾符很多,分為訪問修飾符和非訪問修飾符。本節僅介紹訪問修飾符,非訪問修飾符會在后續介紹。
訪問修飾符也叫訪問控制符,是指能夠控制類、成員變量、方法的使用權限的關鍵字。
在面向對象編程中,訪問控制符是一個很重要的概念,可以使用它來保護對類、變量、方法和構造方法的訪問。
Java支持四種不同的訪問權限:
被聲明為public的類、方法、構造方法和接口能夠被任何其他類訪問。
如果幾個相互訪問的public類分布在不用的包中,則需要導入相應public類所在的包。由于類的繼承性,類所有的公有方法和變量都能被其子類繼承。
下面的方法使用了公有訪問控制:
Java程序的main() 方法必須設置成公有的,否則,Java解釋器將不能運行該類。
被聲明為protected的變量、方法和構造方法能被同一個包中的任何其他類訪問,也能夠被不同包中的子類訪問。
protected訪問修飾符不能修飾類和接口,方法和成員變量能夠聲明為protected,但是接口的成員變量和成員方法不能聲明為protected。
子類能訪問protected修飾符聲明的方法和變量,這樣就能保護不相關的類使用這些方法和變量。
下面的父類使用了protected訪問修飾符,子類重載了父類的bark()方法。
如果把bark()方法聲明為private,那么除了Dog之外的類將不能訪問該方法。如果把bark()聲明為public,那么所有的類都能夠訪問該方法。如果我們只想讓該方法對其所在類的子類可見,則將該方法聲明為protected。