包概念的引入就是為了解決不同包之間有相同類名的類的共存問題,通過關鍵字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:私有通路權限
隻有在目前作用域(通常就是目前類)中才能通路。
通路權限的控制常被稱為具體實作的隐藏。把資料和方法包裝進類中,以及具體實作的隐藏,常被稱作封裝。