天天看點

Thinking in Java 第六章 通路權限控制

包概念的引入就是為了解決不同包之間有相同類名的類的共存問題,通過關鍵字import可以明确指定該類屬于哪個包下,在引入一個類時也可直接寫上類的全路徑,如:

public class FullQualification {
	public static void main(String[] args) {
		// ArrayList在java.util包下,在new的時候直接使用全名明确
		java.util.ArrayList list = new java.util.ArrayList();
	}
}
           

 以上做法能很好的解決問題,但這樣顯得程式很冗長,是以通常這樣使用:

// 以下語句表示引入java.util包下的ArrayList
import java.util.ArrayList;
// 也可使用*來引入,表示引入java.util包下的所有類
import java.util.*;
public class SingleImport {
	public static void main(String[] args) {
		ArrayList list = new ArrayList();
	}
}
           

Java提供了四種不同的通路權限修飾符:

public:接口通路權限

由public修飾的成員對每個人都是可以通路的,也就是說完全公開的;

protected:繼承通路權限

在擁有預設包權限的基礎上還能擁有父類的通路權限,不管有父子關系的兩個成員是否在同一包中;

預設包:無關鍵詞

表示同包下(即相同目錄)可以通路;

private:私有通路權限

隻有在目前作用域(通常就是目前類)中才能通路。

通路權限的控制常被稱為具體實作的隐藏。把資料和方法包裝進類中,以及具體實作的隐藏,常被稱作封裝。

繼續閱讀