Java 入門指南 - 認識 Java 語言

使用 Java 語言寫程式,最簡單的方式就是開啟文字編輯器 (text editor) ,然後將原始程式碼逐字元一個一個打進文字編輯器中,然後依純文字檔案的編碼格式儲存檔案, Java 程式的原始碼檔案採用 .java 的副檔名。




也可以利用具有語法高亮度顯示的文字編輯器,或是整合開發環境 (Integrated Development Environment, IDE) ,如下圖為 Mac 系統的 Xcode



使用本站的語法高亮度顯示,此範例程式 Demo.java 如下
// 宣告類別名稱
public class Demo { 
    // 宣告 main() 方法
    public static void main(String[] args) { 
        // 建立 Object 型態的物件
        Object o = new Object(); 
        
        // 於命令列印出訊息
        System.out.println();
        System.out.println(o.toString());
        System.out.println("↑↑ 上面是 Object 的字串形式");
        System.out.println();
        System.out.println("程式執行結束 ....");
        System.out.println();
    }
}

/* 《程式語言教學誌》的範例程式
    http://pydoing.blogspot.com/
    檔名:Demo.java
    功能:示範 Java 程式 
    作者:張凱慶
    時間:西元 2011 年 4 月 */


我們先看到有特殊顏色標記的幾個字
public class static void new


public 、 class 、 static 、 void 、 new 被稱為關鍵字 (keyword) ,所謂的關鍵字是語法功能的保留字 (reserved word) ,具有既定特殊的用法,例如 public 為權限的修飾子 (modifier) , public 表示公開的,也就是任何地方都可以存取以 public 宣告 (declare) 的內容。 Java 共有 50 個關鍵字,我們接下來會逐一介紹各個關鍵字的用法。


另外,雙引號圍起來的內容則為另一種顏色
"↑↑ 上面是 Object 的字串形式"
"程式執行結束 ...."


這是字串 (string) ,所謂的字串就是文字資料,由於 Java 採用 Unicode 編碼,因此字串內容可以是任何 Unicode 字元。


Unicode 提供數十種文字系統編碼的方式,其中包括我們日常使用的中文,詳細可參見維基百科的介紹 http://zh.wikipedia.org/wiki/Unicode。


註解 (comment) 在語法高亮度系統也有特殊的顏色,連續兩個斜線為單行的注釋,斜線、星號開始到另一組星號、斜線結束的範圍則為多行的註解
// 宣告類別名稱
// 宣告 main() 方法
// 建立 Object 型態的物件
// 於命令列印出訊息

/* 《程式語言:教學誌》的範例程式
    http://pydoing.blogspot.com/
    檔名:Demo.java
    功能:示範 Java 程式 
    作者:張凱慶
    時間:西元 2011 年 4 月 */


所謂的註解就是在程式中輔助說明的文字,凡是註解文字,也就單行連續兩個斜線之後的文字,或是多行斜線、星號範圍間的文字,這些文字都不會被程式執行,因此可插入任何自然語言的說明字句,無須恪守 Java 的語法規則。


其他沒有粗體,也沒有特殊顏色的文字都是識別字 (identifier) ,所謂的識別字是我們寫程式自行定義的名稱,如上例中的變數 (variable) o 。事實上,許多識別字已經是預設或存在於 Java API 之中,預設如上面的 main() 與 args , main() 為方法 (method) 名稱,每個可執行的 Java 程式都必須有個 main() 方法, args 則是 main() 的參數 (parameter) 名稱。


Java API 提供許多已經寫好,測試無誤的類別 (class) ,因此我們寫程式可以直接使用這些類別,以及其所提供的方法與屬性 (field) ,方法為類別進行工作的地方,屬性則為類別專屬的資料。我們應該先認識什麼是什麼,往後才繼續瞭解這些東東的用法。


上例中, Object 、 String 、 System 、 out 與 println() 都屬於 API 中的識別字, Object 、 String 、 System 等三個都是類別名稱, out 為 System 類別的屬性,實際上 out 是一個物件 (object) , println() 則是 out 物件的方法。


這個範例很簡單,大體上我們可以依四個單行註解分成四個區域來看,分別是
  • 宣告類別名稱
  • 宣告 main() 方法
  • 建立 Object 型態的物件
  • 於命令列印出訊息


由於 Java 是物件導向程式語言 (object-oriented programming language) ,使用 Java 寫程式就是設計、規劃物件,而類別為物件的藍圖,因此所有的 Java 程式都至少有一個類別,也就是說, Java 程式都必須用 class 定義, class 就是定義類別所採用的關鍵字。


可執行的 Java 程式則需要定義 main() 方法,這個 main() 需要用 public 與 static 修飾, public 表示公開的, static 表示可由類別名稱存取,這是給 Java 虛擬機器 (Java Virtual Machine, JVM) 呼叫 (call) 之用, Java 程式實際上是由 Java 虛擬機器執行的。


new 關鍵字用來新建物件,變數 o 為對 Object 型態物件的參考 (reference) ,由於 Java 是強型態 (strong typing) 的程式語言,因此變數使用前需要先經過宣告 (declaration) ,宣告的目的就是標明變數的資料型態 (data type) 。 new 之後接的 Object() 為 Object 類別的建構子 (constructor) ,透過建構子就可以把類別轉化為物件。


底下使用 API 中 System 類別 out 物件的 println() 方法,使參數一次一行印在命令列上,其中用到
System.out.println(o.toString());


println() 需要 String 型態的物件當作參數, String 型態的物件也就是字串,雙引號圍起來的內容。 o 呼叫 o 自己的 toString() 方法,這個方法會回傳 o 的字串表達形式,也就是表示 o 的字串物件。


一種類別,也就是一種型態(資料型態),我們繼續來看看如何編譯與執行吧!


中英文術語對照
文字編輯器text editor
整合開發環境Integrated Development Environment, IDE
關鍵字keyword
保留字reserved word
修飾子modifier
宣告declare
字串string
註解comment
識別字identifier
變數variable
方法method
參數parameter
類別class
屬性field
物件object
物件導向程式語言object-oriented programming language
Java 虛擬機器Java Virtual Machine, JVM
呼叫call
參考reference
強型態strong typing
宣告declaration
資料型態data type
建構子constructor


您可以繼續參考
基礎篇


相關目錄
回 Java 入門指南
回 Java 教材目錄
回首頁


參考資料
The JavaTM Tutorials: Getting Started
The JavaTM Tutorials: Learning the Java Language
The JavaTM Tutorials: Essential Classes
The Java Language Specification, Third Edition


本文於 2013 年 1 月訂正

2 則留言:

Unknown 提到...

另外,雙引號為起來的內容則為另一種顏色
"↑↑ 上面是 Object 的字串形式"
"程式執行結束 ...."

===

這段有錯字唷~
另外,雙引號「圍」起來的內容則為另一種顏色

Kaiching Chang 提到...

這邊打錯字了,已修改,感謝指正 ^_^