Java SE 6 API Specification (繁體中文)
Java SE 8 API Specification (English)
API 的全名為 Application Programming Interface,中文翻作應用程式介面,簡單的說就是個類別庫,包含了各方面應用的類別 (class)。
Java API 為隨 JDK 下載的官方類別庫,裡頭常見的應用包括:
- 圖形介面
- 網頁
- 輸入及輸出
- 資料結構
- 時間處理
- 資料庫
- 數學計算
- 網路
- 伺服器
而 Java API Specification 簡單的說,就是針對類別庫裡的所有類別,所做的詳細說明清單,俗稱「開發人員文檔」,我們可以把它想像成一個類似字典的東西,我們不見得記得字典裡的每一個字怎麼寫、每一句成語怎麼使用,但我們能透過字典查閱到每個字詳細的說明與用法。
下面介紹幾個常用的 API 套件與類別:
- java.lang 提供許多寫程式經常使用的類別,包括物件之母 Object 類別,基本資料型態的包裹類別 (wrapper class),如 Boolean、Byte、Character、Double、Float、Integer、Long、Short 類別,具有許多常用數學計算方法的 Math 類別,系統相關功能的 System 類別,同步功能的 Thread 類別,例外處理的 Exception 類別,以及程式經常需要大量處理的字串 String 類別等。
- java.io 是專門用來處理輸入及輸出工作的套件。
- java.awt 提供使用者介面 (user interface) 與點陣圖(包括圖檔)的類別,包括所有常見的 GUI 元件、事件處理、版面規劃等。
- javax.swing 則是另一個專門用來設計 GUI 的套件,提供比 java.awt 更精巧的 GUI 功能。
這裡要留意 javax.swing 並非以 java 開頭,而是以 javax 開頭,這是因為 swing 原本是第三方 (third party) 開發出的類別庫,後於 Java 1.2 版以後才收進官方提供的類別庫之中,所以 API 中以 javax 開頭的,原本都屬於第三方開發的類別庫。
- java.applet 提供 Applet 類別,使 Java 程式可在有安裝 Java Plug-in 的瀏覽器 (browser) 中執行。
- java.util 提供資料結構,如 ArrayList 、 Dictionary 類別,或 List 、 Set 、 Map 等介面 (interface) ,時間處理,如 Calendar 、 Date 、 Timer 等類別。
這裡所提到的介面為程式與程式間的介面,而非使用者與程式間的介面。
程式與程式間的介面類似類別,但介面只需要宣告要有哪些屬性 (field) 與方法 (method) ,屬性為常數值,無須實作方法的詳細內容。這意思是說,介面屬於類別共通的規格,例如「汽車」都可以加油,加滿油,也就是油槽的儲存量會是一個常數,可能每一款車子都不同,每款汽車同樣需要方向盤,實際方向盤的設計彼此之間可能會有極大的差異。油槽的儲存量就像是介面的屬性,方向盤像是介面的方法。
有些程式語言允許多重繼承,多重繼承使類別可以繼承不同父類別的特性,可是 Java 是不允許多重繼承的程式語言,繼承在 Java 中是單方向的, Java 允許繼承單一父類別,卻可實作多個不同介面,讓類別可以得到不同來源的特性。
- java.sql 提供資料庫處理方面,java.net 提供網路方面,而 java.servlet 則提供架設伺服器應用方面的類別與介面。 |