Java 基本介紹 (3)

教學目標

初步了解 Java 程式語言中物件導向中類別、繼承、介面和套件的基本概念與應用。

重點概念

Java 程式語言中物件導向的基本概念主要包括物件、類別、繼承、介面和套件。所謂類別是一個軟體建構主要定義狀態和行為,它本身並不是一個物件,類別就像是一個藍圖,主要定義當物件從類別宣告的規範中建立物件的狀態和行為,透過實體化物件所定義的類別以取得具體的物件。因此我們可以從一個類別定義中實體化許多物件。若對應至現實生活中,則我們經常會發現許多單獨的物件都是一樣的。

然而不同種類的物件通常具有一定共同之處,此時若透過物件導向為主的程式設計則允許類別從其它類別繼承常用的狀態和行為,所有類別物件皆會繼承 Object 類別,此外在 Java 程式語言中一個類別只能繼承單一類別,也就是單一繼承模型。若我們要繼承多個類別時,則只能透過實作介面的方式解決,因為多重繼承會為程式設計師的混亂和膨脹,此時 Java 程式語言中透過介面以更優雅的方式解決問題。在 Java 程式語言中只是針對物件宣告將會實作的方法規範,並不包括實體變數或實體方式,只會以常數和方法宣告的方式實作,簡單來說物件透過公開的方法定義與外部溝通的方式,此時方法就是物件與外部溝通的介面。

範例程式碼

檔案名稱

MRT.java

情境說明

在現實生活中台北捷運站每一站皆有自動提款機,此時我們就能用 Java 物件導向的概念進行初步實作在台北捷運站中啟動和關閉自動提款機。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import java.lang.*;
public class MRT {
public static void main(String[] argv) {
ATM atm1 = new ATM();
ATM atm2 = new ATM();
atm1.on();
atm2.on();
atm1.off();
atm2.off();
}
}
interface Machine {
void on();
void off();
}
class ATM extends Object implements Machine{
private String bank = "國泰世華銀行";
public void on() {
System.out.println(bank + "的自動提款機啟動。");
}
public void off() {
System.out.println(bank + "的自動提款機停止。");
}
}

執行結果

1
2
3
4
國泰世華銀行的自動提款機啟動。
國泰世華銀行的自動提款機啟動。
國泰世華銀行的自動提款機停止。
國泰世華銀行的自動提款機停止。

此外在 Java 程式語言中宣告一個類別、方法和資料時,則可以設定四種等級的存取方式,分別為公開、保護、私有和友好,首先公開為可以隨時隨地的使用,接著保護為只能在該類別和繼承類別中存取,再來私有為只能在該類別中存取,至於友好則是沒有指定存取等級,則代表在同一個套件中所有的物件皆可存取。

宣告關鍵字 同一類別 同一套件 繼承類別 其它套件
public
protected
friendly
private

最後在 Java 程式語言中的套件則是指命名空間,其主要是組織一組相關的類別和介面,概念上有點類似資料夾,由於在 Java 程式語言開發軟體的過程中主要是由數百或數千個單獨的類別所組成,所以透過將相關的類別和介面打包為套件是有意義的一件事,當然在 Java 平台中也提供龐大的類別庫,這種類別庫被稱為 API,其代表通用開發最相關的任務,例如: String 物件包括字串的狀態和行為,File 物件允許程式設計師輕鬆地建立,刪除,檢查,比較或修改文件,…,等,因此對於程式設計師來說主要專注於特定應用程式的設計,而不是針對工作所需的基礎架構進行設計。總結與其說 Java 是個程式語言,還不如說 Java 是個平台更為適當。

相關資源