![](../../img/interpret.jpg)
Java 入門指南
單元 1 - 認識 Java 語言
![](../../img/java-guide/java_concept0101.jpg)
使用 Java 語言寫程式,最簡單的方式就是開啟文字編輯器 (text editor) ,然後將原始程式碼 (source code) 逐字元 (character) 一個一個打進文字編輯器中,然後依純文字檔案的編碼格式儲存檔案 (file) , Java 程式的原始碼檔案採用 .java 的副檔名 (extension)
下面利用 Windows 系統的「記事本」開啟第一個範例 Demo.java
![](../../img/java-guide/demotxt.jpg)
也可以利用具有語法高亮度顯示的文字編輯器,或是整合開發環境 (Integrated Development Environment, IDE) ,如下圖為 Windows 系統的 NetBeans 8.2
![](../../img/java-guide/demonetbeans.jpg)
我們在「基礎篇」、「軟體開發篇」及「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
package 、 public 、 class 、 static 、 void 、 new 被稱為關鍵字 (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() 與 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 型態的物件
- 於命令列印出訊息
套件 (package) 是 Java 組織程式檔案的方式, NetBeans 8.2 建立專案 (project) 預設會連帶建立套件,因此第一個部分為宣告套件,有關套件的部分,會在單元 11 - 套件詳細介紹。
由於 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 的字串物件。
如果沒有提供參數給 println() , println() 就會印出新行字元,也就是印出空白行的意思。
一種類別,也就是一種型態(資料型態),我們繼續來看看如何實際用 NetBeans 8.2 建立專案與執行吧!
相關教學影片
- 第一堂課 認識 Java 程式語言:Java 與 Java API ⇨ YouTube 頁面連結
- 第一堂課 認識 Java 程式語言:Java 程式的基本結構 ⇨ YouTube 頁面連結
- 第一堂課 認識 Java 程式語言:關鍵字、識別字、字面常數與運算子 ⇨ YouTube 頁面連結
![](../../img/pydoing.gif)
中英文術語對照 | |
---|---|
Integrated Development Environment, IDE | 整合開發環境 |
Java Virtual Machine, JVM | Java 虛擬機器 |
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 內。 |