SlideShare una empresa de Scribd logo
1 de 81
第 2 章

初探 Java
本投影片(下稱教用資源)僅授權給採用教用資源相關之旗標書籍為教科書之授課老師(下稱老師)專用,老
師為教學使用之目的,得摘錄、編輯、重製教用資源(但使用量不得超過各該教用資源內容之 80% )以製作為
輔助教學之教學投影片,並於授課時搭配旗標書籍公開播放,但不得為網際網路公開傳輸之遠距教學、網路教
學等之使用;除此之外,老師不得再授權予任何第三人使用,並不得將依此授權所製作之教學投影片之相關著
作物移作他用。
著作權所有 © 旗標出版股份有限公司
學習目標
 準備開發程式的環境
 撰寫、編譯與執行程式
 認識 Java 程式的結構
前言
 在上一章中 , 已經簡單的介紹了有關程式語言最基本
的概念 , 以及程式語言的分類 , 並且對於 Java 程式
語言的演進也有了初步的瞭解。
 接下來這一章 , 就要開始實際動手撰寫 Java 程式 ,
並且對於構成 Java 程式的基本要素 , 一一提出詳盡
的解說。
2-1 建置 Java 的程式開發環境
 雖然市面上、網路上可找到不少具有整合開發環境
(IDE) 的 Java 語言開發工具 , 像是昇陽 (Sun) 公
司的 NetBeans IDE 、開放原始碼 (Open Source)
的 Eclipse 、以及 CodeGear 公司的 JBuilder 等
。
 不過初學者最好能親自用昇陽公司的 Java 開發套件
(JDK, Java SE Developement Kit) 來編譯及執行
Java 程式 , 以便對 Java 有更深入的認識;等到將
來比較熟練之後 , 再使用 IDE 來加快程式開發的速
度。
2-1-1 下載 JDK 及文件
 若想取得最新 JDK 版本 , 可直接至昇陽公司的官方
網站下載 , 請開啟瀏覽器 , 連上
"http://java.sun.com/javase/downloads/index.jsp " :
下載 JDK 及文件
下載 JDK 及文件
下載 JDK 及文件
下載 JDK 及文件
 在下載 JDK 的同時 , 我們也可另行下載 JDK 的說
明文件 , 請再次連
上 "http://java.sun.com/javase/downloads/index.jsp
", 向下捲動找到 "Java SE 6 Documentation" 項目
:
下載 JDK 及文件
下載 JDK 及文件

 下載完畢 , 即可依下一單元介紹的方法進行安裝與設
定。
2-1-2 安裝 JDK 工具及文件
 要安裝 JDK 很簡單 , 直接執行其安裝程式即可;至
於文件則只要自行解壓縮到指定的目錄即可完成安裝
。
安裝 JDK 開發工具
 要安裝 JDK 開發工具 , 請直接執行下載回來的安裝
程式檔:
安裝 JDK 開發工具
安裝 JDK 開發工具
安裝 JDK 開發工具
安裝 JDK 開發工具
安裝 JDK 開發工具

 至此即安裝完成 , 稍後我們會介紹如何設定 Java 的
工作環境 , 以方便使用 JDK 中的工具程式。
安裝 JDK 說 明文件
 昇陽公司提供的 JDK 說明文件為 HTML 網頁格式 ,
而且是以壓縮檔的形式包裝 , 並未提供安裝程式 , 我
們只需將它解壓縮至想安裝的路徑即可:
安裝 JDK 說 明文件
安裝 JDK 說 明文件
 解壓縮完畢後 , 切換到文件解壓縮的目錄 , 如下操作
:
安裝 JDK 說 明文件
安裝 JDK 說 明文件
2-1-3 設定開發環境
 雖然 JDK 安裝好後即可使用 , 但由於安裝程式未替
我們設定 Windows 環境變數 , 用起來並不方便 , 因
此要一勞永逸 , 就是在安裝後即設好相關環境變數。
請按開始鈕 , 並依如下步驟進行設定:
設定開發環境
設定開發環境
設定開發環境
設定開發環境
設定開發環境
設定開發環境
 設定好後不妨立即測試一下 , 請開啟命令提示字元視
窗 ( 執行開始功能表的『所有程式 / 附屬應用程式 /
命令提示字元』命令 ) :
設定開發環境
 如果出現『 'javac' 不是內部或外部命令、可執行的
程式或批次檔。』這樣的訊息 , 表示您的 Path 環境
變數設定有誤 , 因此作業系統找不到 javac 執行檔
所在的位置。
 請再次確認您的 JDK 安裝路徑 , 並依前述的步驟重
新設定環境變數。
2-2 撰寫第一個 Java 程式
 要使用 Java 程式語言 , 您必須先將依照 Java 語
法撰寫的程式儲存在一個純文字檔 案中 ( 副檔名一般
都是用 .java), 然後再利用 Java 程式語言的編譯器
轉譯程式 , 將您所撰寫的 Java 程式轉譯成 Java
虛擬機器的機器碼 , 也稱為 Byte Code 。
 然後再使用 Java 虛擬機器來執行轉譯出來的機器碼
。
 如果執行結果有問題 , 就必須回頭修改程式 , 再重複
前面所描述的步驟。
撰寫第一個 Java 程式

 以下就帶領大家依據上述的步驟 , 完成第 1 個 Java
程式。
2-2-1 使用文字編輯器撰寫程式
 要撰寫 Java 程式 , 必須使用文字編輯器 (Text
Editor), 像是 Windows 所內附的記事本 , 或者是坊
間一般流行的 UltraEdit 這類付費軟體來撰寫 , 而不
是使用 Word 這一類的文書處理軟體。
 您也可以在網路上找到許多功能不錯、免費的文字編
輯器 , 像是 Crimson Editor 、 VIM 等等。
為什麼不能使用文書處理軟體撰寫
Java 程式
 像是 Word 之類的文書處理軟體 , 由於必須記錄段
落文字的樣式 ( 大小、顏色、字體 ) , 因此除了您鍵
入的文字以外 , 儲存檔案時還會儲存許多相關文字樣
式的資訊 , 而且預設會以其自訂的格式儲存文字與相
關資訊。
 Java 編譯器既不認得這些文書處理軟體的檔案格式 ,
也無法認得其中所儲存的相關資訊 , 因此無法正確編
譯程式 , 所以請不要使用文書處理軟體來撰寫程式。
使用文字編輯器撰寫程式
 現在 , 就請您使用文字編輯器 , 撰寫如下的程式:

▪ 請特別注意 , 鍵入程式的時候並不包含每一行開頭的
行號與空白 , 這些是為了書中解說程式時的方便 , 並
不是程式的一部份。

 並請儲存為 FirstJava.java 這樣的檔名。
2-2-2 編譯寫好的程式
 撰寫好並儲存 FirstJava.java 這個程式檔後 , 就可以
利用 Java 編譯器來進行編譯。
 Java 編譯器的檔名為 javac (javac.exe), 而執行程
式的工具則為 java (java.exe) 。
 在使用前 , 請先確定您已依照上一節的說明建置好
Java 工作環境。
編譯寫好的程式
 請執行 『開始 / 所有程式 / 附屬應用程式 / 命令提
示字元』 命令 , 開啟命令提示字元 視窗 , 先利用
『 cd 』 指令切換到您儲存程式檔案的資料夾 , 例如
若 FirstJava.java 是儲存在 C 磁碟的 test 資料夾
下 , 就必須先執行以下的指令 , 切換到該資料夾:
編譯寫好的程式
 然後鍵入以下指令進行編譯:

 如果編譯之後發現有錯誤 , 請回過頭去檢查您所鍵入
的程式 , 看看是不是有甚麼地方打錯了?
 如果還是有問題 , 請參考 『 2-2-4 撰寫 Java 程式
的注意事項』 一節 , 仔細檢查您的程式。
2-2-3 執行程式
 一旦編譯完成 , 沒有任何錯誤 , 您就可以執行剛剛所
撰寫的程式了。請在您所開啟的命令提示字元視窗中
, 鍵入以下指令執行剛剛編譯好的程式:

▪ 編譯的結果會儲存到副檔名為 .class 的檔案 , 例如在
本例中為 FirstJava.class 。由於在執行時會自動加上
.class, 因此上面的命令不可寫成 java
FirstClass.class 。
執行程式
 以下就是由編譯到執行的實際結果:
2-2-4 撰寫 Java 程式的注意事項
 如果編譯或是執行的過程中有問題 , 請依照以下所提
的注意事項 , 仔細檢查您的程式。
檔 案名稱
 檔案名稱必須和第 1 行 public class 之後的
FirstJava 相符 , 並且加上 .java 作為副檔名 , 以標
示這是一個 Java 程式。
 因此 , 儲存的檔案必須取名為 FirstJava.java, 如果
取錯名字 , 編譯的時候就會出現錯誤訊息。
 例如 , 剛剛的程式如果儲存在 First.java 中 , 則編譯
的結果如下。
檔 案名稱

 錯誤訊息告訴您必須將程式儲存在一個名為
FirstJava.java 的檔案裡。
英文字大小寫不同
 Java 編譯器會視英文字母的大小寫為不同的字母。
 舉例來說 , 第 3 行一開頭的 System 就不能寫為
system, 也不能寫為 SYSTEM, 否則編譯的時候都
一樣會有錯誤訊息。
全形與半形不同
 如果您很習慣使用中文全形的標點符號或是括號 , 那
麼就必須特別注意 , 在程式中必須使用半形的標點符
號以及括號。
 舉例來說 , 半形的『 ; 』不能寫成全形的『;』。
執行時不需指定副檔 名
 執行編譯好的程式時 , 只需要指定主檔名 , 也就是檔
案名稱中 .class 之前的部分 ( 因為 java 會自動加
上 .class 副檔名 ) 。
 如果您連帶列出副檔名的話 , 就會出現執行錯誤的狀
況 , 像是這樣:
執行時不需指定副檔 名
 另外 , 執行時所指定的主檔名部分大小寫必須相符。
 以本例來說 , 主檔名必須和第 1 行 public class 之
後的名稱一樣 , 也就是 FirstJava, 如果您的大小寫
不對 , 執行就會發生錯誤 , 例如。
執行時不需指定副檔 名
無法執行 javac.exe 或是 java.exe
 這很可能是忘記設定環境變數 path 的值 , 請參考上
一節進行設定。
2-3 Java 程式的組成要素
 在上一節中 , 已經帶領大家實際撰寫了第一個 Java
程式 , 接下來就要針對這個簡單的程式 , 一一解析構
成 Java 程式的基本要素。
2-3-1 區塊 (Block)
 讓我們再來看看剛剛所撰寫的 FirstJava 程式:
區塊 (Block)
 簡簡單單的 5 行 , 就構成了 Java 程式最基本的架
構 , 其中 , 您可以注意到幾件事情:
▪ 程式中以一對大括號 { 與 } 括起來的部分稱為區塊
(Block), 區塊中可以包含其他的區塊 , 像是第 1 ~ 5
行的區塊就包含了第 2 ~ 4 行的區塊。在左大括號
( 即 {) 左邊的文字代表的是該區塊的種類與名稱 , 不
同的區塊構成 Java 程式中的各種元素 , 後續的章節
會說明每一種區塊的意義。
區塊 (Block)
▪ 為了突顯出區塊 , 並且方便辨識區塊的包含關係 , 在
撰寫程式時會把區塊的內容往右邊縮排 (Indent) 。
舉例來說 , 第 2 ~ 4 行的區塊因為是內含在第 1 ~ 5
行的區塊內 , 所以將整個區塊往右縮 , 這樣在視覺上
就可以清楚的區分出區塊間的關係。
不過 , 這純粹是為了撰寫或閱讀程式時辨識上的方便 ,
而非必要的作法 , 您也可以把相同的程式寫成這樣。
區塊 (Block)

▪ 一樣可以正常編譯執行 , 但可讀性很差。
▪ 至於縮排時要往右移多少空格 , 則是憑個人喜好而定 ,
我們建議以 2 ~ 4 個空格最恰當。在本書中 , 所有的
程式都是以 2 個空格為縮排的間隔。
2-3-2 Java 程式的起點 - -main
 在範例程式的區塊中 , 有一個區塊是每一個 Java 程
式都必須要有的 , 就是第 2 ~ 4 行的區塊 , 這個區
塊稱為 main() 方法 , 意思是說 , 這個區塊構成了一
個方法 (Method), 而 main 是這個方法的名字。
 至於方法的意義 , 會在第 8 章說明 , 這裡只要先記
住每一個 Java 程式都必須要有一個 main() 方法即
可。
main() 方法的名稱
 再次提醒 , 由於 Java 是英文字母大小寫不同 , 因此
要特別注意 main 是全部小寫。
 除此之外 , 第一行 public class 之後的名稱也會依據
程式的目的不同而命名 , 以適度說明程式的內容。
Java 程式的起點 - -main
 main() 方法是 Java 程式真正執行時的起點 , 當
Java 程式執行時 , 會從這個區塊內的程式開始 , 循
序執行 , 一直到這個區塊結束為止。
 以 FirstJava.java 來說 , main() 方法中只有一行程式
, 這行程式的作用就是在螢幕上輸出訊息。
 其中 , 以一對雙引號 ("") 所括起來的內容就是要輸
出的訊息 , 在本例中 , 就是輸出『這是我的第一個
Java 程式。』只要變化用雙引號括起來的內容 , 就
可以輸出不同的訊息。
Java 程式的起點 - -main
 因此 , 只要更改 main() 方法的內容 , 程式的執行結
果就會不同。舉例來說 , 我們可以修改
FirstJava.java 程式 , 讓 main() 方法的內容更加豐
富 , 例如:
Java 程式的起點 - -main
 在 SecondJava.java 這個程式中 , main() 方法內有
2 行程式 , 分別輸出兩段訊息。因此 , 編譯、執行程
式就會看到這 2 行訊息了。
 從這一章開始 , 範例程式都會依循和 FirstJava.java
相似的架構 , 僅有內部的區塊 , 也就是 main() 方法
有所差別 , 來執行不同的動作。
Java 程式的起點 - -main

 除此之外 , 第一行 public class 之後的名稱也會依據
程式的目的不同而命名 , 以適度說明程式的內容。
2-3-3 敘述 (Statement )
 如果細部來看單一個區塊 , 那麼每個區塊又是由一或
多個敘述 (Statement ) 所構成。
 簡單的敘述是以分號 (;) 結尾 , 其他的敘述則是以一
個區塊作為結尾。
 以 SecondJava.java 為例 , 在 main() 方法這個區
塊中就有兩個敘述 , 分別是:

 Java 程式基本上就是由敘述組合而成 , 而程式在執
行時就是以敘述為單元 , 由上往下循序進行。
敘述結尾分號
 簡單的敘述都是以分號為分隔 , 同一個敘述可以分成
多行撰寫 , 和寫在同一行是一樣的效果;多個簡單敘
述也可以寫在同一行 , 結果和每一個敘述單獨撰寫成
一行相同。
 舉例來說 , 以下這個程式就和 SecondJava.java 意
義完全相同 , 只是斷行的方式不同而已。
敘述結尾分號

 其中 3 、 4 兩行就是原本的第 3 行;而 5 、 6
兩行則是原本的第 4 行。
字符 (Token) 與空白符號 (Whitespace)
 如果再把敘述剖開 , 那麼敘述可以再細分為由一或多
個字符 (Token) 所組成。
 例如 SecondJava.java 的第 3 行
『 System.out.println (" 這是我所寫的第二個 Java
程式, "); 』就是由『 System 』、『 . 』、
『 out 』、『 . 』、『 println 』、『 ( 』、『 " 這
是我所寫的第二個 Java 程式, " 』、『 ) 』、
『 ; 』這些字符所組成。
 字符與字符之間可以加上適當數量的空白符號
(Whitespace), 以方便識別。
字符 (Token) 與空白符號 (Whitespace)
 舉例來說 , 以下的程式雖然在 "println" 與 "(" 間加
上了額外的空白 , 但和 SecondJava.java 的意義是
相同的:
字符 (Token) 與空白符號 (Whitespace)
 但是如果字符間不相隔開會造成混淆的話 , 就一定得
加上空白符號。
 舉例來說 , 第 2 行的 public 、 static 、 void 與
main 這 4 個字符中間若不以分隔字元隔開 , 就變
成 publicstaticvoidmain, Java 編譯器就會以為這是
單一個字符了。
字符 (Token) 與空白符號 (Whitespace)
 在 Java 中 , 空白字元、換行字元 ( 也就是按
[Enter]) 以及定位字元 ( 也就是按 [Tab]) 都可以作
為空白符號 , 您可以依據實際的需求採用不同的方式
。
 之前曾經提過 , 同一個敘述可以分成多行撰寫 , 其實
就是利用換行字元當作空白符號。
 換句話說 , 同一敘述分成多行撰寫時並不能隨便斷行
, 而必須以字符為界線 , 像是以下這個程式編譯時就
會有錯誤 , 因為它把 println 這個字符斷開成兩行了
。
字符 (Token) 與空白符號 (Whitespace)
分隔符號 (Separator)
 要特別注意的是 ,
"(" 、 ")" 、 "{" 、 "}" 、 "[" 、 "]" 、 ";" 、 "," 、 "." 這
些字符在 Java 中稱為分隔符號 (Separator 或
punctuator) 。
 它們除了可以將其之前與之後的字符隔開以外 , 通常
也代表了其後的字符 ( 如果是成對的分隔符號 , 像是
"{" 與 "}", 則是指由這對分隔符號所包含的內容 ) 是
其前面字符的附屬部分。
 舉例來說 , 在 SecondJava.java 中 , main() 方法後
面由 "{" 、 "}" 括起來的區塊就是 main() 方法的主
分隔符號 (Separator)

 除了 ";" 在前面已經說明過 , 是用來分隔敘述以外 ,
其餘的分隔符號會在後面章節中適當的地方說明。
2-3-4 為程式加上註解 (Comment )
 除了撰寫實際上會有所動作的敘述以外 , 您也可以在
程式中加上僅有說明用途的註解 (Comment ) 。
 舉例來說 , 以下的程式就加上了許多註解 , 讓您可以
更輕易的看懂程式的內容。
為程式加上註解 (Comment )
為程式加上註解 (Comment )
 其中 , // 字符開始往後一直到該行文字結束之前的內
容都是註解 , 當 Java 解譯器看到 "//" 字符後 , 就會
忽略其後的文字 , 一直到下一行開始 , 才會繼續轉譯
程式的內容 , 這種註解稱為單行註解 (End-Of-Line
Comment) 。
 另外還有一種可以跨越多行的註解方式 , 稱為傳統式
註解 (Traditional Comment) 或是區塊式註解
(Block Comment), 以成對的 /* 與 */ 來包含所要
加入的註解說明。
為程式加上註解 (Comment )
 例如:
為程式加上註解 (Comment )
 其中第 1 ~ 4 行就是一個跨越 4 行的區塊式註解 ,
而第 7 行則是一個僅在單一行內的區塊式註解。
 區塊式註解原則上可出現在程式中的任何位置 , 但不
能出現在字符內 , 例如以下程式在編譯時會有錯誤:

 因為在第 2 行中有一個區塊式註解出現在字符中 ,
這是錯誤的寫法。
為程式加上註解 (Comment )
 註解是一項非必要、但強烈建議使用的工具。
 尤其當程式很長或是邏輯比較複雜的時候 , 加上適當
的註解不但可以讓自己在一段時間過後能夠知道撰寫
程式時的想法 , 如果程式往後要交給別的人修改 , 那
麼註解也是後繼者理解程式的最佳幫助。
為程式加上註解 (Comment )
 總結來說 , Java 程式是由字符組成敘述 , 再由敘述
組成區塊 , 然後再由區塊組成整個程式。
 到了這裡 , 我們已經把 Java 程式最基本的架構以及
各個組成元素簡單說明完畢 , 從下一章開始 , 就要學
習與動手撰寫更複雜、功能更多的 Java 程式了。
1. Place codes into the following class so that it
compiles correctly .

Codes:
2. Which are true for Java language? (Choose all that
apply . )
A. A block is begin with [ and end with ].
B. A Block Comment is begin with /* and end with */.
C. A Whitespace could be a space, tab, or new-line
character.
D. A statement is end with colon (:).
E. Every executable program must have a Main() method.
3. Given the following java code:

Which is the result?
A. Compiles error at line 1 because missing class name (Hi).
B. Compiles error at line 2 because too much statement in one line.
C. Compiles error at line 2 because a statement can't be break into
two lines.
D. Compiles error at line 3 because }} should be modified to } }.
E. Compiles successfully.

Más contenido relacionado

La actualidad más candente

000 北京圣思园教育科技有限公司第一期面授培训大纲
000 北京圣思园教育科技有限公司第一期面授培训大纲000 北京圣思园教育科技有限公司第一期面授培训大纲
000 北京圣思园教育科技有限公司第一期面授培训大纲ArBing Xie
 
中远公司 Java培训资料
中远公司  Java培训资料中远公司  Java培训资料
中远公司 Java培训资料yiditushe
 
Spring 2.0 技術手冊第六章 - Hibernate 與 Spring
Spring 2.0 技術手冊第六章 - Hibernate 與 SpringSpring 2.0 技術手冊第六章 - Hibernate 與 Spring
Spring 2.0 技術手冊第六章 - Hibernate 與 SpringJustin Lin
 
Spring 2.0 技術手冊第四章 - Spring AOP
Spring 2.0 技術手冊第四章 - Spring AOPSpring 2.0 技術手冊第四章 - Spring AOP
Spring 2.0 技術手冊第四章 - Spring AOPJustin Lin
 
Java 1(Java概述)
Java 1(Java概述)Java 1(Java概述)
Java 1(Java概述)xzdbd
 
Ibmzf2
Ibmzf2Ibmzf2
Ibmzf2daoopp
 
2. java introduction
2. java introduction2. java introduction
2. java introductionnetdbncku
 
IKVM.NET 深入敵營的 Java
IKVM.NET 深入敵營的 JavaIKVM.NET 深入敵營的 Java
IKVM.NET 深入敵營的 Java建興 王
 
物件導向程式設計課程講義(98 ges hi版)
物件導向程式設計課程講義(98 ges hi版)物件導向程式設計課程講義(98 ges hi版)
物件導向程式設計課程講義(98 ges hi版)Hui-Shih Leng
 
Struts学习笔记
Struts学习笔记Struts学习笔记
Struts学习笔记yiditushe
 
Spring 2.0 技術手冊第九章 - API 封裝
Spring 2.0 技術手冊第九章 - API 封裝Spring 2.0 技術手冊第九章 - API 封裝
Spring 2.0 技術手冊第九章 - API 封裝Justin Lin
 
Php设计模式介绍
Php设计模式介绍Php设计模式介绍
Php设计模式介绍cyf5513
 
Struts快速学习指南
Struts快速学习指南Struts快速学习指南
Struts快速学习指南yiditushe
 
Spring入门纲要
Spring入门纲要Spring入门纲要
Spring入门纲要yiditushe
 
Struts Mitac(1)
Struts Mitac(1)Struts Mitac(1)
Struts Mitac(1)wangjiaz
 
实战Ejb(最终完美版)
实战Ejb(最终完美版)实战Ejb(最终完美版)
实战Ejb(最终完美版)yiditushe
 

La actualidad más candente (18)

000 北京圣思园教育科技有限公司第一期面授培训大纲
000 北京圣思园教育科技有限公司第一期面授培训大纲000 北京圣思园教育科技有限公司第一期面授培训大纲
000 北京圣思园教育科技有限公司第一期面授培训大纲
 
中远公司 Java培训资料
中远公司  Java培训资料中远公司  Java培训资料
中远公司 Java培训资料
 
Spring 2.0 技術手冊第六章 - Hibernate 與 Spring
Spring 2.0 技術手冊第六章 - Hibernate 與 SpringSpring 2.0 技術手冊第六章 - Hibernate 與 Spring
Spring 2.0 技術手冊第六章 - Hibernate 與 Spring
 
Spring 2.0 技術手冊第四章 - Spring AOP
Spring 2.0 技術手冊第四章 - Spring AOPSpring 2.0 技術手冊第四章 - Spring AOP
Spring 2.0 技術手冊第四章 - Spring AOP
 
Java 1(Java概述)
Java 1(Java概述)Java 1(Java概述)
Java 1(Java概述)
 
Les 3 ppt
Les 3 pptLes 3 ppt
Les 3 ppt
 
Ibmzf2
Ibmzf2Ibmzf2
Ibmzf2
 
Jni文档
Jni文档Jni文档
Jni文档
 
2. java introduction
2. java introduction2. java introduction
2. java introduction
 
IKVM.NET 深入敵營的 Java
IKVM.NET 深入敵營的 JavaIKVM.NET 深入敵營的 Java
IKVM.NET 深入敵營的 Java
 
物件導向程式設計課程講義(98 ges hi版)
物件導向程式設計課程講義(98 ges hi版)物件導向程式設計課程講義(98 ges hi版)
物件導向程式設計課程講義(98 ges hi版)
 
Struts学习笔记
Struts学习笔记Struts学习笔记
Struts学习笔记
 
Spring 2.0 技術手冊第九章 - API 封裝
Spring 2.0 技術手冊第九章 - API 封裝Spring 2.0 技術手冊第九章 - API 封裝
Spring 2.0 技術手冊第九章 - API 封裝
 
Php设计模式介绍
Php设计模式介绍Php设计模式介绍
Php设计模式介绍
 
Struts快速学习指南
Struts快速学习指南Struts快速学习指南
Struts快速学习指南
 
Spring入门纲要
Spring入门纲要Spring入门纲要
Spring入门纲要
 
Struts Mitac(1)
Struts Mitac(1)Struts Mitac(1)
Struts Mitac(1)
 
实战Ejb(最终完美版)
实战Ejb(最终完美版)实战Ejb(最终完美版)
实战Ejb(最终完美版)
 

Destacado

Exploration network chapter6
Exploration network chapter6Exploration network chapter6
Exploration network chapter6r82093403
 
Ciw going mobile
Ciw going mobileCiw going mobile
Ciw going mobiler82093403
 
D_Kucharavy_invention_et_prevision_cogitoexpo13
D_Kucharavy_invention_et_prevision_cogitoexpo13D_Kucharavy_invention_et_prevision_cogitoexpo13
D_Kucharavy_invention_et_prevision_cogitoexpo13CCI Alsace Eurométropole
 
Những chia sẻ của bố mẹ được nhận "bão like" trên mạng xã hội tuần qua
Những chia sẻ của bố mẹ được nhận "bão like" trên mạng xã hội tuần quaNhững chia sẻ của bố mẹ được nhận "bão like" trên mạng xã hội tuần qua
Những chia sẻ của bố mẹ được nhận "bão like" trên mạng xã hội tuần quacuongdienbaby03
 
Should women over 50 be given the choice to have children ?
Should women over 50 be given the choice to have children ?Should women over 50 be given the choice to have children ?
Should women over 50 be given the choice to have children ?Dr Aniruddha Malpani
 
Presentacion
PresentacionPresentacion
Presentacionvivizeta1
 
Merry christmas mr bean
Merry christmas mr beanMerry christmas mr bean
Merry christmas mr beanDenise Larsson
 
InfoMEET Łódź 7 XII 2013
InfoMEET Łódź 7 XII 2013InfoMEET Łódź 7 XII 2013
InfoMEET Łódź 7 XII 2013JanRytel
 

Destacado (17)

SCJP ch06
SCJP ch06SCJP ch06
SCJP ch06
 
SCJP ch05
SCJP ch05SCJP ch05
SCJP ch05
 
SCJP ch07
SCJP ch07SCJP ch07
SCJP ch07
 
SCJP ch08
SCJP ch08SCJP ch08
SCJP ch08
 
SCJP ch14
SCJP ch14SCJP ch14
SCJP ch14
 
SCJP ch12
SCJP ch12SCJP ch12
SCJP ch12
 
Exploration network chapter6
Exploration network chapter6Exploration network chapter6
Exploration network chapter6
 
Ciw going mobile
Ciw going mobileCiw going mobile
Ciw going mobile
 
Netiqueta
NetiquetaNetiqueta
Netiqueta
 
D_Kucharavy_invention_et_prevision_cogitoexpo13
D_Kucharavy_invention_et_prevision_cogitoexpo13D_Kucharavy_invention_et_prevision_cogitoexpo13
D_Kucharavy_invention_et_prevision_cogitoexpo13
 
Những chia sẻ của bố mẹ được nhận "bão like" trên mạng xã hội tuần qua
Những chia sẻ của bố mẹ được nhận "bão like" trên mạng xã hội tuần quaNhững chia sẻ của bố mẹ được nhận "bão like" trên mạng xã hội tuần qua
Những chia sẻ của bố mẹ được nhận "bão like" trên mạng xã hội tuần qua
 
Should women over 50 be given the choice to have children ?
Should women over 50 be given the choice to have children ?Should women over 50 be given the choice to have children ?
Should women over 50 be given the choice to have children ?
 
Presentacion
PresentacionPresentacion
Presentacion
 
Monopsony graphs
Monopsony graphsMonopsony graphs
Monopsony graphs
 
Merry christmas mr bean
Merry christmas mr beanMerry christmas mr bean
Merry christmas mr bean
 
InfoMEET Łódź 7 XII 2013
InfoMEET Łódź 7 XII 2013InfoMEET Łódź 7 XII 2013
InfoMEET Łódź 7 XII 2013
 
SCJP ch03
SCJP ch03SCJP ch03
SCJP ch03
 

Similar a SCJP ch02

Java SE 7 技術手冊第二章草稿 - 從 JDK 到 IDE
Java SE 7 技術手冊第二章草稿 - 從 JDK 到 IDEJava SE 7 技術手冊第二章草稿 - 從 JDK 到 IDE
Java SE 7 技術手冊第二章草稿 - 從 JDK 到 IDEJustin Lin
 
Javascript代码注释及文档生成
Javascript代码注释及文档生成Javascript代码注释及文档生成
Javascript代码注释及文档生成fangdeng
 
Servlet & JSP 教學手冊第二版試讀 - 撰寫與設定 Servlet
Servlet & JSP 教學手冊第二版試讀 - 撰寫與設定 ServletServlet & JSP 教學手冊第二版試讀 - 撰寫與設定 Servlet
Servlet & JSP 教學手冊第二版試讀 - 撰寫與設定 ServletJustin Lin
 
test
testtest
testxieyq
 
由一个简单的程序谈起――之二
由一个简单的程序谈起――之二由一个简单的程序谈起――之二
由一个简单的程序谈起――之二yiditushe
 
Lucene 全文检索实践
Lucene 全文检索实践Lucene 全文检索实践
Lucene 全文检索实践yiditushe
 
Java 推荐读物
Java 推荐读物Java 推荐读物
Java 推荐读物yiditushe
 
第1讲 开始编写程序
第1讲 开始编写程序第1讲 开始编写程序
第1讲 开始编写程序ruandao
 
第一章 概述和Jdk的安装和配置
第一章 概述和Jdk的安装和配置第一章 概述和Jdk的安装和配置
第一章 概述和Jdk的安装和配置yinmei1983
 
招聘笔试题(二)
招聘笔试题(二)招聘笔试题(二)
招聘笔试题(二)yiditushe
 
1, java intro
1, java intro1, java intro
1, java introted-xu
 
Eclipse開發平台快速入門
Eclipse開發平台快速入門Eclipse開發平台快速入門
Eclipse開發平台快速入門Luo Korth
 
常用JAVA代码质量静态检查工具
常用JAVA代码质量静态检查工具常用JAVA代码质量静态检查工具
常用JAVA代码质量静态检查工具dearhwj
 
Java面试知识
Java面试知识Java面试知识
Java面试知识yiditushe
 
Java 基礎入門1
Java 基礎入門1Java 基礎入門1
Java 基礎入門1li1920li
 
Jsp高级编程
Jsp高级编程Jsp高级编程
Jsp高级编程yiditushe
 

Similar a SCJP ch02 (20)

Java SE 7 技術手冊第二章草稿 - 從 JDK 到 IDE
Java SE 7 技術手冊第二章草稿 - 從 JDK 到 IDEJava SE 7 技術手冊第二章草稿 - 從 JDK 到 IDE
Java SE 7 技術手冊第二章草稿 - 從 JDK 到 IDE
 
Javascript代码注释及文档生成
Javascript代码注释及文档生成Javascript代码注释及文档生成
Javascript代码注释及文档生成
 
Servlet & JSP 教學手冊第二版試讀 - 撰寫與設定 Servlet
Servlet & JSP 教學手冊第二版試讀 - 撰寫與設定 ServletServlet & JSP 教學手冊第二版試讀 - 撰寫與設定 Servlet
Servlet & JSP 教學手冊第二版試讀 - 撰寫與設定 Servlet
 
test
testtest
test
 
Jsp
JspJsp
Jsp
 
SCJP ch17
SCJP ch17SCJP ch17
SCJP ch17
 
SCJP ch01
SCJP ch01SCJP ch01
SCJP ch01
 
由一个简单的程序谈起――之二
由一个简单的程序谈起――之二由一个简单的程序谈起――之二
由一个简单的程序谈起――之二
 
Lucene 全文检索实践
Lucene 全文检索实践Lucene 全文检索实践
Lucene 全文检索实践
 
Java 推荐读物
Java 推荐读物Java 推荐读物
Java 推荐读物
 
SCJP ch16
SCJP ch16SCJP ch16
SCJP ch16
 
第1讲 开始编写程序
第1讲 开始编写程序第1讲 开始编写程序
第1讲 开始编写程序
 
第一章 概述和Jdk的安装和配置
第一章 概述和Jdk的安装和配置第一章 概述和Jdk的安装和配置
第一章 概述和Jdk的安装和配置
 
招聘笔试题(二)
招聘笔试题(二)招聘笔试题(二)
招聘笔试题(二)
 
1, java intro
1, java intro1, java intro
1, java intro
 
Eclipse開發平台快速入門
Eclipse開發平台快速入門Eclipse開發平台快速入門
Eclipse開發平台快速入門
 
常用JAVA代码质量静态检查工具
常用JAVA代码质量静态检查工具常用JAVA代码质量静态检查工具
常用JAVA代码质量静态检查工具
 
Java面试知识
Java面试知识Java面试知识
Java面试知识
 
Java 基礎入門1
Java 基礎入門1Java 基礎入門1
Java 基礎入門1
 
Jsp高级编程
Jsp高级编程Jsp高级编程
Jsp高级编程
 

Más de r82093403

The lpic 2 exam prep
The lpic 2 exam prepThe lpic 2 exam prep
The lpic 2 exam prepr82093403
 
Exploration network chapter3
Exploration network chapter3Exploration network chapter3
Exploration network chapter3r82093403
 
Exploration network chapter7
Exploration network chapter7Exploration network chapter7
Exploration network chapter7r82093403
 
Exploration network chapter11
Exploration network chapter11Exploration network chapter11
Exploration network chapter11r82093403
 
Exploration network chapter10
Exploration network chapter10Exploration network chapter10
Exploration network chapter10r82093403
 
Exploration network chapter9
Exploration network chapter9Exploration network chapter9
Exploration network chapter9r82093403
 
Exploration network chapter4
Exploration network chapter4Exploration network chapter4
Exploration network chapter4r82093403
 
Exploration network chapter2
Exploration network chapter2Exploration network chapter2
Exploration network chapter2r82093403
 
Exploration network chapter1
Exploration network chapter1Exploration network chapter1
Exploration network chapter1r82093403
 
Exploration network chapter5
Exploration network chapter5Exploration network chapter5
Exploration network chapter5r82093403
 

Más de r82093403 (15)

The lpic 2 exam prep
The lpic 2 exam prepThe lpic 2 exam prep
The lpic 2 exam prep
 
SCJP ch18
SCJP ch18SCJP ch18
SCJP ch18
 
SCJP ch15
SCJP ch15SCJP ch15
SCJP ch15
 
SCJP ch11
SCJP ch11SCJP ch11
SCJP ch11
 
SCJP ch10
SCJP ch10SCJP ch10
SCJP ch10
 
SCJP ch04
SCJP ch04SCJP ch04
SCJP ch04
 
Exploration network chapter3
Exploration network chapter3Exploration network chapter3
Exploration network chapter3
 
Exploration network chapter7
Exploration network chapter7Exploration network chapter7
Exploration network chapter7
 
Exploration network chapter11
Exploration network chapter11Exploration network chapter11
Exploration network chapter11
 
Exploration network chapter10
Exploration network chapter10Exploration network chapter10
Exploration network chapter10
 
Exploration network chapter9
Exploration network chapter9Exploration network chapter9
Exploration network chapter9
 
Exploration network chapter4
Exploration network chapter4Exploration network chapter4
Exploration network chapter4
 
Exploration network chapter2
Exploration network chapter2Exploration network chapter2
Exploration network chapter2
 
Exploration network chapter1
Exploration network chapter1Exploration network chapter1
Exploration network chapter1
 
Exploration network chapter5
Exploration network chapter5Exploration network chapter5
Exploration network chapter5
 

SCJP ch02

  • 1. 第 2 章 初探 Java 本投影片(下稱教用資源)僅授權給採用教用資源相關之旗標書籍為教科書之授課老師(下稱老師)專用,老 師為教學使用之目的,得摘錄、編輯、重製教用資源(但使用量不得超過各該教用資源內容之 80% )以製作為 輔助教學之教學投影片,並於授課時搭配旗標書籍公開播放,但不得為網際網路公開傳輸之遠距教學、網路教 學等之使用;除此之外,老師不得再授權予任何第三人使用,並不得將依此授權所製作之教學投影片之相關著 作物移作他用。 著作權所有 © 旗標出版股份有限公司
  • 3. 前言  在上一章中 , 已經簡單的介紹了有關程式語言最基本 的概念 , 以及程式語言的分類 , 並且對於 Java 程式 語言的演進也有了初步的瞭解。  接下來這一章 , 就要開始實際動手撰寫 Java 程式 , 並且對於構成 Java 程式的基本要素 , 一一提出詳盡 的解說。
  • 4. 2-1 建置 Java 的程式開發環境  雖然市面上、網路上可找到不少具有整合開發環境 (IDE) 的 Java 語言開發工具 , 像是昇陽 (Sun) 公 司的 NetBeans IDE 、開放原始碼 (Open Source) 的 Eclipse 、以及 CodeGear 公司的 JBuilder 等 。  不過初學者最好能親自用昇陽公司的 Java 開發套件 (JDK, Java SE Developement Kit) 來編譯及執行 Java 程式 , 以便對 Java 有更深入的認識;等到將 來比較熟練之後 , 再使用 IDE 來加快程式開發的速 度。
  • 5. 2-1-1 下載 JDK 及文件  若想取得最新 JDK 版本 , 可直接至昇陽公司的官方 網站下載 , 請開啟瀏覽器 , 連上 "http://java.sun.com/javase/downloads/index.jsp " :
  • 9. 下載 JDK 及文件  在下載 JDK 的同時 , 我們也可另行下載 JDK 的說 明文件 , 請再次連 上 "http://java.sun.com/javase/downloads/index.jsp ", 向下捲動找到 "Java SE 6 Documentation" 項目 :
  • 11. 下載 JDK 及文件  下載完畢 , 即可依下一單元介紹的方法進行安裝與設 定。
  • 12. 2-1-2 安裝 JDK 工具及文件  要安裝 JDK 很簡單 , 直接執行其安裝程式即可;至 於文件則只要自行解壓縮到指定的目錄即可完成安裝 。
  • 13. 安裝 JDK 開發工具  要安裝 JDK 開發工具 , 請直接執行下載回來的安裝 程式檔:
  • 18. 安裝 JDK 開發工具  至此即安裝完成 , 稍後我們會介紹如何設定 Java 的 工作環境 , 以方便使用 JDK 中的工具程式。
  • 19. 安裝 JDK 說 明文件  昇陽公司提供的 JDK 說明文件為 HTML 網頁格式 , 而且是以壓縮檔的形式包裝 , 並未提供安裝程式 , 我 們只需將它解壓縮至想安裝的路徑即可:
  • 20. 安裝 JDK 說 明文件
  • 21. 安裝 JDK 說 明文件  解壓縮完畢後 , 切換到文件解壓縮的目錄 , 如下操作 :
  • 22. 安裝 JDK 說 明文件
  • 23. 安裝 JDK 說 明文件
  • 24. 2-1-3 設定開發環境  雖然 JDK 安裝好後即可使用 , 但由於安裝程式未替 我們設定 Windows 環境變數 , 用起來並不方便 , 因 此要一勞永逸 , 就是在安裝後即設好相關環境變數。 請按開始鈕 , 並依如下步驟進行設定:
  • 30. 設定開發環境  設定好後不妨立即測試一下 , 請開啟命令提示字元視 窗 ( 執行開始功能表的『所有程式 / 附屬應用程式 / 命令提示字元』命令 ) :
  • 31. 設定開發環境  如果出現『 'javac' 不是內部或外部命令、可執行的 程式或批次檔。』這樣的訊息 , 表示您的 Path 環境 變數設定有誤 , 因此作業系統找不到 javac 執行檔 所在的位置。  請再次確認您的 JDK 安裝路徑 , 並依前述的步驟重 新設定環境變數。
  • 32. 2-2 撰寫第一個 Java 程式  要使用 Java 程式語言 , 您必須先將依照 Java 語 法撰寫的程式儲存在一個純文字檔 案中 ( 副檔名一般 都是用 .java), 然後再利用 Java 程式語言的編譯器 轉譯程式 , 將您所撰寫的 Java 程式轉譯成 Java 虛擬機器的機器碼 , 也稱為 Byte Code 。  然後再使用 Java 虛擬機器來執行轉譯出來的機器碼 。  如果執行結果有問題 , 就必須回頭修改程式 , 再重複 前面所描述的步驟。
  • 33. 撰寫第一個 Java 程式  以下就帶領大家依據上述的步驟 , 完成第 1 個 Java 程式。
  • 34. 2-2-1 使用文字編輯器撰寫程式  要撰寫 Java 程式 , 必須使用文字編輯器 (Text Editor), 像是 Windows 所內附的記事本 , 或者是坊 間一般流行的 UltraEdit 這類付費軟體來撰寫 , 而不 是使用 Word 這一類的文書處理軟體。  您也可以在網路上找到許多功能不錯、免費的文字編 輯器 , 像是 Crimson Editor 、 VIM 等等。
  • 35. 為什麼不能使用文書處理軟體撰寫 Java 程式  像是 Word 之類的文書處理軟體 , 由於必須記錄段 落文字的樣式 ( 大小、顏色、字體 ) , 因此除了您鍵 入的文字以外 , 儲存檔案時還會儲存許多相關文字樣 式的資訊 , 而且預設會以其自訂的格式儲存文字與相 關資訊。  Java 編譯器既不認得這些文書處理軟體的檔案格式 , 也無法認得其中所儲存的相關資訊 , 因此無法正確編 譯程式 , 所以請不要使用文書處理軟體來撰寫程式。
  • 36. 使用文字編輯器撰寫程式  現在 , 就請您使用文字編輯器 , 撰寫如下的程式: ▪ 請特別注意 , 鍵入程式的時候並不包含每一行開頭的 行號與空白 , 這些是為了書中解說程式時的方便 , 並 不是程式的一部份。  並請儲存為 FirstJava.java 這樣的檔名。
  • 37. 2-2-2 編譯寫好的程式  撰寫好並儲存 FirstJava.java 這個程式檔後 , 就可以 利用 Java 編譯器來進行編譯。  Java 編譯器的檔名為 javac (javac.exe), 而執行程 式的工具則為 java (java.exe) 。  在使用前 , 請先確定您已依照上一節的說明建置好 Java 工作環境。
  • 38. 編譯寫好的程式  請執行 『開始 / 所有程式 / 附屬應用程式 / 命令提 示字元』 命令 , 開啟命令提示字元 視窗 , 先利用 『 cd 』 指令切換到您儲存程式檔案的資料夾 , 例如 若 FirstJava.java 是儲存在 C 磁碟的 test 資料夾 下 , 就必須先執行以下的指令 , 切換到該資料夾:
  • 39. 編譯寫好的程式  然後鍵入以下指令進行編譯:  如果編譯之後發現有錯誤 , 請回過頭去檢查您所鍵入 的程式 , 看看是不是有甚麼地方打錯了?  如果還是有問題 , 請參考 『 2-2-4 撰寫 Java 程式 的注意事項』 一節 , 仔細檢查您的程式。
  • 40. 2-2-3 執行程式  一旦編譯完成 , 沒有任何錯誤 , 您就可以執行剛剛所 撰寫的程式了。請在您所開啟的命令提示字元視窗中 , 鍵入以下指令執行剛剛編譯好的程式: ▪ 編譯的結果會儲存到副檔名為 .class 的檔案 , 例如在 本例中為 FirstJava.class 。由於在執行時會自動加上 .class, 因此上面的命令不可寫成 java FirstClass.class 。
  • 42. 2-2-4 撰寫 Java 程式的注意事項  如果編譯或是執行的過程中有問題 , 請依照以下所提 的注意事項 , 仔細檢查您的程式。
  • 43. 檔 案名稱  檔案名稱必須和第 1 行 public class 之後的 FirstJava 相符 , 並且加上 .java 作為副檔名 , 以標 示這是一個 Java 程式。  因此 , 儲存的檔案必須取名為 FirstJava.java, 如果 取錯名字 , 編譯的時候就會出現錯誤訊息。  例如 , 剛剛的程式如果儲存在 First.java 中 , 則編譯 的結果如下。
  • 45. 英文字大小寫不同  Java 編譯器會視英文字母的大小寫為不同的字母。  舉例來說 , 第 3 行一開頭的 System 就不能寫為 system, 也不能寫為 SYSTEM, 否則編譯的時候都 一樣會有錯誤訊息。
  • 46. 全形與半形不同  如果您很習慣使用中文全形的標點符號或是括號 , 那 麼就必須特別注意 , 在程式中必須使用半形的標點符 號以及括號。  舉例來說 , 半形的『 ; 』不能寫成全形的『;』。
  • 47. 執行時不需指定副檔 名  執行編譯好的程式時 , 只需要指定主檔名 , 也就是檔 案名稱中 .class 之前的部分 ( 因為 java 會自動加 上 .class 副檔名 ) 。  如果您連帶列出副檔名的話 , 就會出現執行錯誤的狀 況 , 像是這樣:
  • 48. 執行時不需指定副檔 名  另外 , 執行時所指定的主檔名部分大小寫必須相符。  以本例來說 , 主檔名必須和第 1 行 public class 之 後的名稱一樣 , 也就是 FirstJava, 如果您的大小寫 不對 , 執行就會發生錯誤 , 例如。
  • 50. 無法執行 javac.exe 或是 java.exe  這很可能是忘記設定環境變數 path 的值 , 請參考上 一節進行設定。
  • 51. 2-3 Java 程式的組成要素  在上一節中 , 已經帶領大家實際撰寫了第一個 Java 程式 , 接下來就要針對這個簡單的程式 , 一一解析構 成 Java 程式的基本要素。
  • 52. 2-3-1 區塊 (Block)  讓我們再來看看剛剛所撰寫的 FirstJava 程式:
  • 53. 區塊 (Block)  簡簡單單的 5 行 , 就構成了 Java 程式最基本的架 構 , 其中 , 您可以注意到幾件事情: ▪ 程式中以一對大括號 { 與 } 括起來的部分稱為區塊 (Block), 區塊中可以包含其他的區塊 , 像是第 1 ~ 5 行的區塊就包含了第 2 ~ 4 行的區塊。在左大括號 ( 即 {) 左邊的文字代表的是該區塊的種類與名稱 , 不 同的區塊構成 Java 程式中的各種元素 , 後續的章節 會說明每一種區塊的意義。
  • 54. 區塊 (Block) ▪ 為了突顯出區塊 , 並且方便辨識區塊的包含關係 , 在 撰寫程式時會把區塊的內容往右邊縮排 (Indent) 。 舉例來說 , 第 2 ~ 4 行的區塊因為是內含在第 1 ~ 5 行的區塊內 , 所以將整個區塊往右縮 , 這樣在視覺上 就可以清楚的區分出區塊間的關係。 不過 , 這純粹是為了撰寫或閱讀程式時辨識上的方便 , 而非必要的作法 , 您也可以把相同的程式寫成這樣。
  • 55. 區塊 (Block) ▪ 一樣可以正常編譯執行 , 但可讀性很差。 ▪ 至於縮排時要往右移多少空格 , 則是憑個人喜好而定 , 我們建議以 2 ~ 4 個空格最恰當。在本書中 , 所有的 程式都是以 2 個空格為縮排的間隔。
  • 56. 2-3-2 Java 程式的起點 - -main  在範例程式的區塊中 , 有一個區塊是每一個 Java 程 式都必須要有的 , 就是第 2 ~ 4 行的區塊 , 這個區 塊稱為 main() 方法 , 意思是說 , 這個區塊構成了一 個方法 (Method), 而 main 是這個方法的名字。  至於方法的意義 , 會在第 8 章說明 , 這裡只要先記 住每一個 Java 程式都必須要有一個 main() 方法即 可。
  • 57. main() 方法的名稱  再次提醒 , 由於 Java 是英文字母大小寫不同 , 因此 要特別注意 main 是全部小寫。  除此之外 , 第一行 public class 之後的名稱也會依據 程式的目的不同而命名 , 以適度說明程式的內容。
  • 58. Java 程式的起點 - -main  main() 方法是 Java 程式真正執行時的起點 , 當 Java 程式執行時 , 會從這個區塊內的程式開始 , 循 序執行 , 一直到這個區塊結束為止。  以 FirstJava.java 來說 , main() 方法中只有一行程式 , 這行程式的作用就是在螢幕上輸出訊息。  其中 , 以一對雙引號 ("") 所括起來的內容就是要輸 出的訊息 , 在本例中 , 就是輸出『這是我的第一個 Java 程式。』只要變化用雙引號括起來的內容 , 就 可以輸出不同的訊息。
  • 59. Java 程式的起點 - -main  因此 , 只要更改 main() 方法的內容 , 程式的執行結 果就會不同。舉例來說 , 我們可以修改 FirstJava.java 程式 , 讓 main() 方法的內容更加豐 富 , 例如:
  • 60. Java 程式的起點 - -main  在 SecondJava.java 這個程式中 , main() 方法內有 2 行程式 , 分別輸出兩段訊息。因此 , 編譯、執行程 式就會看到這 2 行訊息了。  從這一章開始 , 範例程式都會依循和 FirstJava.java 相似的架構 , 僅有內部的區塊 , 也就是 main() 方法 有所差別 , 來執行不同的動作。
  • 61. Java 程式的起點 - -main  除此之外 , 第一行 public class 之後的名稱也會依據 程式的目的不同而命名 , 以適度說明程式的內容。
  • 62. 2-3-3 敘述 (Statement )  如果細部來看單一個區塊 , 那麼每個區塊又是由一或 多個敘述 (Statement ) 所構成。  簡單的敘述是以分號 (;) 結尾 , 其他的敘述則是以一 個區塊作為結尾。  以 SecondJava.java 為例 , 在 main() 方法這個區 塊中就有兩個敘述 , 分別是:  Java 程式基本上就是由敘述組合而成 , 而程式在執 行時就是以敘述為單元 , 由上往下循序進行。
  • 63. 敘述結尾分號  簡單的敘述都是以分號為分隔 , 同一個敘述可以分成 多行撰寫 , 和寫在同一行是一樣的效果;多個簡單敘 述也可以寫在同一行 , 結果和每一個敘述單獨撰寫成 一行相同。  舉例來說 , 以下這個程式就和 SecondJava.java 意 義完全相同 , 只是斷行的方式不同而已。
  • 64. 敘述結尾分號  其中 3 、 4 兩行就是原本的第 3 行;而 5 、 6 兩行則是原本的第 4 行。
  • 65. 字符 (Token) 與空白符號 (Whitespace)  如果再把敘述剖開 , 那麼敘述可以再細分為由一或多 個字符 (Token) 所組成。  例如 SecondJava.java 的第 3 行 『 System.out.println (" 這是我所寫的第二個 Java 程式, "); 』就是由『 System 』、『 . 』、 『 out 』、『 . 』、『 println 』、『 ( 』、『 " 這 是我所寫的第二個 Java 程式, " 』、『 ) 』、 『 ; 』這些字符所組成。  字符與字符之間可以加上適當數量的空白符號 (Whitespace), 以方便識別。
  • 66. 字符 (Token) 與空白符號 (Whitespace)  舉例來說 , 以下的程式雖然在 "println" 與 "(" 間加 上了額外的空白 , 但和 SecondJava.java 的意義是 相同的:
  • 67. 字符 (Token) 與空白符號 (Whitespace)  但是如果字符間不相隔開會造成混淆的話 , 就一定得 加上空白符號。  舉例來說 , 第 2 行的 public 、 static 、 void 與 main 這 4 個字符中間若不以分隔字元隔開 , 就變 成 publicstaticvoidmain, Java 編譯器就會以為這是 單一個字符了。
  • 68. 字符 (Token) 與空白符號 (Whitespace)  在 Java 中 , 空白字元、換行字元 ( 也就是按 [Enter]) 以及定位字元 ( 也就是按 [Tab]) 都可以作 為空白符號 , 您可以依據實際的需求採用不同的方式 。  之前曾經提過 , 同一個敘述可以分成多行撰寫 , 其實 就是利用換行字元當作空白符號。  換句話說 , 同一敘述分成多行撰寫時並不能隨便斷行 , 而必須以字符為界線 , 像是以下這個程式編譯時就 會有錯誤 , 因為它把 println 這個字符斷開成兩行了 。
  • 70. 分隔符號 (Separator)  要特別注意的是 , "(" 、 ")" 、 "{" 、 "}" 、 "[" 、 "]" 、 ";" 、 "," 、 "." 這 些字符在 Java 中稱為分隔符號 (Separator 或 punctuator) 。  它們除了可以將其之前與之後的字符隔開以外 , 通常 也代表了其後的字符 ( 如果是成對的分隔符號 , 像是 "{" 與 "}", 則是指由這對分隔符號所包含的內容 ) 是 其前面字符的附屬部分。  舉例來說 , 在 SecondJava.java 中 , main() 方法後 面由 "{" 、 "}" 括起來的區塊就是 main() 方法的主
  • 71. 分隔符號 (Separator)  除了 ";" 在前面已經說明過 , 是用來分隔敘述以外 , 其餘的分隔符號會在後面章節中適當的地方說明。
  • 72. 2-3-4 為程式加上註解 (Comment )  除了撰寫實際上會有所動作的敘述以外 , 您也可以在 程式中加上僅有說明用途的註解 (Comment ) 。  舉例來說 , 以下的程式就加上了許多註解 , 讓您可以 更輕易的看懂程式的內容。
  • 74. 為程式加上註解 (Comment )  其中 , // 字符開始往後一直到該行文字結束之前的內 容都是註解 , 當 Java 解譯器看到 "//" 字符後 , 就會 忽略其後的文字 , 一直到下一行開始 , 才會繼續轉譯 程式的內容 , 這種註解稱為單行註解 (End-Of-Line Comment) 。  另外還有一種可以跨越多行的註解方式 , 稱為傳統式 註解 (Traditional Comment) 或是區塊式註解 (Block Comment), 以成對的 /* 與 */ 來包含所要 加入的註解說明。
  • 76. 為程式加上註解 (Comment )  其中第 1 ~ 4 行就是一個跨越 4 行的區塊式註解 , 而第 7 行則是一個僅在單一行內的區塊式註解。  區塊式註解原則上可出現在程式中的任何位置 , 但不 能出現在字符內 , 例如以下程式在編譯時會有錯誤:  因為在第 2 行中有一個區塊式註解出現在字符中 , 這是錯誤的寫法。
  • 77. 為程式加上註解 (Comment )  註解是一項非必要、但強烈建議使用的工具。  尤其當程式很長或是邏輯比較複雜的時候 , 加上適當 的註解不但可以讓自己在一段時間過後能夠知道撰寫 程式時的想法 , 如果程式往後要交給別的人修改 , 那 麼註解也是後繼者理解程式的最佳幫助。
  • 78. 為程式加上註解 (Comment )  總結來說 , Java 程式是由字符組成敘述 , 再由敘述 組成區塊 , 然後再由區塊組成整個程式。  到了這裡 , 我們已經把 Java 程式最基本的架構以及 各個組成元素簡單說明完畢 , 從下一章開始 , 就要學 習與動手撰寫更複雜、功能更多的 Java 程式了。
  • 79. 1. Place codes into the following class so that it compiles correctly . Codes:
  • 80. 2. Which are true for Java language? (Choose all that apply . ) A. A block is begin with [ and end with ]. B. A Block Comment is begin with /* and end with */. C. A Whitespace could be a space, tab, or new-line character. D. A statement is end with colon (:). E. Every executable program must have a Main() method.
  • 81. 3. Given the following java code: Which is the result? A. Compiles error at line 1 because missing class name (Hi). B. Compiles error at line 2 because too much statement in one line. C. Compiles error at line 2 because a statement can't be break into two lines. D. Compiles error at line 3 because }} should be modified to } }. E. Compiles successfully.