在 java 中,聲明訪問權(quán)限的關(guān)鍵字有三個(gè),分別是 public protected private。
一個(gè) class 如果不能被其他 class 調(diào)用,那它就沒有存在的必要。在 java 中 ,聲明一個(gè) class 為 protected 或 private 會(huì)導(dǎo)致這個(gè) class 成為一個(gè)孤島無法和外部取得聯(lián)系,因此 protected 和 ?private ?是不能用來修飾 class 的。
那么就只剩下 public ?了。正如 public 的中義(公開的)所指,被 public 聲明的 class 能被其他 class ?自由的訪問。所以絕對(duì)大部分時(shí)候,你都需要把 一個(gè) class 聲明為 public。
人總是會(huì)犯錯(cuò)的,有時(shí)忘記寫 public ,這時(shí)你會(huì)發(fā)現(xiàn)程序依舊正常運(yùn)行。那么什么時(shí)候忘記寫 public 會(huì)出錯(cuò)呢?當(dāng)被訪問的 class(Person) 與 訪問者 class 不同屬于一個(gè) package 時(shí),如果被訪問的 class? 沒有聲明為 public ,程序?qū)?bào)錯(cuò),錯(cuò)誤信息為:
錯(cuò)誤: Person在net.saqing中不是公共的; 無法從外部程序包中對(duì)其進(jìn)行訪問
總結(jié)
對(duì) class 的訪問控制有兩種方式,一種是聲明 class 為 public ,另一種是不聲明為 public.
with public , 該 class 可以自由的被訪問
without public, 該 class 只可以被同一個(gè) package 中的 其他 class 訪問