Java 入門指南

單元 1 - 認識 Java 語言

~~學習進度表~~

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

.java

下面利用 Windows 系統的「記事本」開啟第一個範例 Demo.java

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

我們在「基礎篇」、「軟體開發篇」及「JavaFX App 篇」採用 NetBeans 8.2 介紹 Java 程式,「Android App 篇」則改用 Android Studio 介紹 Android App 的開發。

NetBeans 8.2 是配合 JDK 1.8 的 NetBeans 版本,這是本書配合 Android 開發使用的版本,請從 Oracle 網站 JDK 8u111 with NetBeans 8.2 下載安裝檔。若往後 Andorid 提升支援 Java 的版本,本書也會隨之改版。

NetBeans 8.2 在 Windows 裡只有用某些特定的字型才能正常顯示中文,此處採用的字型為 DialogInput ,或是要將 Windows 的預設編碼改為 UTF-8 ,在 Mac 裡則無此問題。

或是參考本書的語法高亮度顯示,此範例程式 Demo.java 如下

/*
 * 檔名:Demo.java
 * 作者:張凱慶
 * 網站:http://kaiching.org
 */
package demo;

// 宣告類別名稱
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("程式執行結束");
        System.out.println();
    }
}

我們先看到栗色標記的幾個字

package public class static void new

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

橄欖色標記的有

String Object System out println

這幾個字是 API 中可直接使用的名稱,屬於 API 中的識別字 (identifier) 。

另外,雙引號為起來的內容為藍色

"程式執行結束"

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

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

註解 (comment) 在語法高亮度系統採用綠色,連續兩個斜線為單行的註解

// 宣告類別名稱

斜線、星號開始到另一組星號、斜線結束的範圍則為多行的註解

/*
 * 檔名:Demo.java
 * 作者:張凱慶
 * 網站:http://kaiching.org
 */

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

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

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

上例中, ObjectStringSystemoutprintln() 都屬於 API 中的識別字, ObjectStringSystem 等三個都是類別名稱, outSystem 類別的屬性,實際上 out 是一個物件 (object) , println() 則是 out 物件的方法。

這個範例很簡單,大體上我們可以分成五個區域來看,分別是

  1. 宣告套件名稱
  2. 宣告類別名稱
  3. 宣告 main() 方法
  4. 建立 Object 型態的物件
  5. 於命令列印出訊息

套件 (package) 是 Java 組織程式檔案的方式, NetBeans 8.2 建立專案 (project) 預設會連帶建立套件,因此第一個部分為宣告套件,有關套件的部分,會在單元 11 - 套件詳細介紹。

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

可執行的 Java 程式則需要定義 main() 方法,這個 main() 需要用 publicstatic 修飾, 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 的字串物件。

如果沒有提供參數給 println()println() 就會印出新行字元,也就是印出空白行的意思。

一種類別,也就是一種型態(資料型態),我們繼續來看看如何實際用 NetBeans 8.2 建立專案與執行吧!

相關教學影片

上一頁 基礎篇
回 Java 入門指南首頁
下一頁 單元 2 - 在 NetBeans 8.2 建立專案並執行
回 Java 教材首頁
回程式語言教材首頁
中英文術語對照
Integrated Development Environment, IDE整合開發環境
Java Virtual Machine, JVMJava 虛擬機器
call呼叫
character字元
class類別
comment註解
constructor建構子
data type資料型態
declare, declaration宣告
extension副檔名
field屬性
file檔案
identifier識別字
keyword關鍵字
method方法
modifier修飾子
object-oriented programming language物件導向程式語言
package套件
parameter參數
project專案
reference參考
reserved word保留字
source code原始程式碼
string字串
strong typing強型態
text editor文字編輯器
variable變數
參考資料
1. The Java™ Tutorials: "Hello World!" for the NetBeans IDE
2. The Java™ Tutorials: "Hello World!" for Microsoft Windows
3. Lesson: A Closer Look at the "Hello World!" Application
重點整理
1. Java 程式的副檔名為 .java
2. NetBeans 8.2 的 Java 專案預設會宣告套件,接著定義類別。
3. 可執行的 Java 程式要在類別中定義 main() 方法。
4. 關鍵字在程式中具有語法上的功能。
5. 識別字是程式中自行命名的名稱。
6. API 為已經定義好的程式內容,在自己寫的程式可以直接使用。
7. 字串是雙引號圍起來的文字資料。
8. 註解是程式中不會被執行的部分, Java 有兩種註解,分別是連續兩條斜線及斜線、星號到另一組星號、斜線。
問題與討論
1. 可以用 Word 寫程式嗎?有什麼不方便的地方呢?
2. 識別字就是變數嗎?兩者有什麼不同呢?
3. 想想看應該替程式碼提供哪些註解?什麼地方需要?什麼地方又不需要?
4. 物件導向程式語言除了 Java 還有其他的嗎? C 語言是嗎? Python 是嗎? Fortran 呢?
5. 物件是程式設計的中文術語,英文原文為 object ,其實 object 就是一般中文「東西」的意思,想一想平常我們是怎麼運用「東西」的,「東西」的概念如何移植到程式設計的物件中?
練習
1. 下載安裝 NetBeans 8.2 ,首先看到 Start Page ,點擊 Install Plugins 按鈕,查看有哪些外掛程式已被安裝,有可以安裝哪些外掛程式。
2. 打開 Windows PowerShell ,利用指令 cd 可以切換所在路徑,試著打 cd Desktop ,將所在路徑更改為桌面,再打 md demo ,指令 md 用來建立新的資料夾,最後再打 cd demo ,進入到資料夾 demo 內。