第 2 堂課 - java 程式架構與基本觀念
上次更新日期 2018/07/29
資傳系就是以資訊技術來進行數位內容傳播的科系,因此同學們會經常使用到網路來傳遞你所設計的數位內容。那數位內容當然就是主要透過操作電腦來完成的, 包括課堂上經常使用到的修圖軟體 phtoshop、排版軟體 Illustrator、3D 建模軟體 Blender、網頁製作編輯器 notepad++ 等等,你要操作這些軟體當然得要有電腦! 而你的電腦資源到底能不能讓你順利的完成你的數位內容製作?你的網路到底能不能通行?這都跟作業系統有關!而作業系統又跟硬體有關! 所以,這些內容我們最好都能學習。
- 2.0: 英打練習與上週作業執行
- 2.1: java 程式撰寫的注意事項
- 2.2: java 程式結構初探
- 2.3: java 輸出中文的解決方法
- 2.4: 解決問題的流程與簡單範例
- 2.5: 以彈出式視窗呈現結果
- 2.6: 整數與小數
- 2.7: 課程中練習
- 2.8: 參考資料
- 2.9: 課後練習
2.0: 英打練習與上週作業執行
資訊科技的技術,如果不是老闆,生產力人員 (就是你我) 通常不會只使用手持式裝置,至少會使用到各式鍵盤。因此,打字就非常重要, 好的打字速度帶你上天堂,差的打字速度讓你呆成糖 (蟲的台語,慢吞吞之意)!關於打字練習的重要注意事項請參考第 0 堂課的說明, 同時,請花 10 分鐘完成第 0 堂課的英文打字練習。完成之後,請打開你的 notepad++ 軟體,輸入底下的字串喔!
C:\Users\dic\java>javac haha.java↵ haha.java:2: error: class hello is public, should be declared in a file named hello.java↵ public class hello {↵ unit02_3_1.java:1 error umappable character (0xE5) for encoding x-windows-950↵ ↵ C:\Users\dic\java>javac -encoding utf8 unit02_3_1.java↵ System.out.println("My average score"+(79+85+91+65+88)/5);↵ ↵ import javax.swing.JOptionPane;↵ public class unit02_5_1 {↵ public static void main (String args[]) {↵ JOptionPane.showMessageDialog(null, "My average score"+(79+85+91+65+88)/5 );↵ }↵ }↵ ↵ JOptionPane.ERROR_MESSAGE↵ JOptionPane.INFORMATION_MESSAGE↵
你不需要複製貼上,這單純是要讓你的打字速度變快!所以不要太緊張!練習就對了!沒練習完畢?沒關係,有空繼續練習即可!
- 上週作業的執行
請從 class.vbird.tw 上面下載你上週的作業 java 文字檔,然後先行編譯成功後,等待老師過來查閱是否編譯成功與執行成功! 若執行成功,在你的作業成績會打 v !
2.1: java 程式撰寫的注意事項
先讓我們回到第一堂課的 hello.java 原始碼的內容查看一下 java 程式的主要結構:
// Hello World public class hello { public static void main (String args[] ) { System.out.println ("Hello World!!"); } }
開始解析 java 的程式結構之前,你需要注意到幾件重要的事情:
- 檔名必須要與 public class 後面接的名稱一樣:
以這個案例來說,我們在 public class 後面接了 hello 這個類別名稱,那麼檔名就一定要寫成 hello.java 才行, 否則這個程式就不會編譯成功。例如鳥哥將上面的程式碼重新儲存成為 haha.java 之後,並對 haha.java 進行編譯, 編譯會失敗,然後會出現底下的錯誤訊息喔!C:\Users\dic\java>javac haha.java haha.java:2: error: class hello is public, should be declared in a file named hello.java public class hello { ^ 1 error # 上面的錯誤訊息,大意是,因為 public class 名稱為 hello,所以請定義檔名為 hello.java!
- 英文大小寫是不同的:
其實,除了 windows 系統之外,大部分的系統對於英文的大小寫判斷,大多數都是將英文大小寫視為不同。 包括未來大家會經常接觸的 javascript 這些腳本程式語言,對於大小寫都有很嚴格的限制!包括 Linux 對於檔名的定義, 都不太相同。例如上面的程式碼中, System.out 就不能寫成 SYSTEM.out ,也不能寫成 system.out 喔! 一般來說,第一個英文字母大多數為小寫就是了! - 全形與半形是不一樣的資料:
基本上,中文輸入的全形文字就是一種『純文字』的概念,所以,除非是在顯示的資訊裡面,否則,請不要使用到全形文字! 舉例來說,你要對齊,請使用 [tab] 來推開文字,不要用全形空白字元!你要完成每一段落的結束,請使用半形分號 (;) 不能使用全形分號 (;), 否則就會產生失敗。 (全形空白是最嚴重的問題!因為它很難在編輯器上面被察覺!所以,請絕對不要使用啦!) - 程式碼最好都要加上註解 (//):
你會看到上面整段程式碼第一行有兩條連在一起的雙斜線,兩條斜線連在一起那就是『註解』的意思,也就是說,接在後面的資料都是註解的功能, 並不會被載入成為執行串。這個註解很有用的!不管是誰,寫了程式之後,久了疏於維護,就會忘記該程式碼的功能與意義。 所以,針對每行程式碼增加詳細的註解,是很好的習慣!另外,如果註解的資料超過一行以上,可以使用 /* ... */ 來包含註解文字!/* 開始註解的資料 一直講不完的註解資料 */
- 程式碼對齊與縮排:
你會發現上面的程式碼,每一行都會向右邊縮排,例如第 1 個 public 對應到最後一行的 } 是在最左邊, 第 2 個 public 對應倒數第 2 個 },而 System.out.println 則在最右邊。這麼做的原因是為了方便未來 debug 之用的! 因為你可以很輕易的就找出有問題的程式段,而且知道該程式段所在的函數名稱!請養成良好的習慣。 鳥哥喜歡用 [tab] 按鈕向右推開,你也可以自己補上幾個空白鍵,隨個人喜好囉。 - 每一行程式碼的結尾都要補上分號 (;):
這個是 java 與 javascript 以及 C 或者是 PHP 等程式語言的語法,在實際執行的程式段最後,都要加上分號來作為該段程式的結尾。 也就是說,其實程式碼是可以寫兩行的!但是程式碼的結束,就是依據分號來判斷的!這個要先注意才行喔! - 使用變數盡量加上自己的暱稱,避免與保留字重複:
未來我們才會談到保留字,例如上面程式碼裡面就已經用到的 public, class, void, static...,這些保留字是有意義的, 如果被你用成變數,那可能會造成程式碼的誤判!因此,以鳥哥的暱稱 vb 來說,我就喜歡加上類似『 vbname = 』之類的變數名稱, 就能躲避可能造成的名稱重複的問題。
上述的注意事項要經常複習,因為不只 java 程式語言是這樣的,其實所有的程式語言,甚至網頁設計的 HTML 與 CSS 都建議這樣處理! 所以,一開始養成良好習慣,未來許多資訊方面的技術都可以用的上!
// Hello World public class unit02_1_1 { public static void Main (String args[] ) { System.out.println ("Hello World!!"); } }之後開始測試:
- 能不能 javac unit02_1_1.java 編譯成功?為什麼?
- 能不能 java unit02_1_1 執行?為什麼?
2.2: java 程式結構初探
初學者一定要先知道 java 的程式結構,你不要問為什麼!這個是需要背下來的程式碼結構!雖然如此,不過你還是可以稍微分析一下這些程式碼的中文意義, 大概的初步理解一下程式碼結構的意義。如下所示,一開始 java 程式碼就需要宣告一個類別的名稱,而且該名稱最好能與執行的內容有點相關。 此外,該類別名稱需要與 java 檔名相同。
// Hello World public class hello { public static void main (String args[] ) { System.out.println ("Hello World!!"); } }
如果以中文來展示,上述的第一行內容有點像這樣:
// Hello World 公開的 類別 此類別的名稱 { 在此類別名稱底下的程式碼區段 ... }
定義好 java 一開始所需要的類別名稱之後,再來則是在此類別底下的各個程式碼。不過程式碼必須要包含在某個運作的函數方法 (Method) 中, 而這個方法則是程式的進入起始點。想個常見的情況好了,在資傳系你要使用系上的公用電腦,必須要輸入你的帳號與密碼才可以。 所以,登入 windows 的這個『方法』當中,你必須要『帶入帳號與密碼』這兩個參數,如果登入成功,螢幕就會『回傳歡迎訊息』, 你也可以不要有歡迎訊息,直接來操作系統。好!來看看底下的程式碼:
// Hello World public class hello { public static void main (String args[] ) { System.out.println ("Hello World!!"); } }
- static :翻譯做唯一的,也說是靜態的,不需要額外建立物件。
- void :不需要回傳值
- main :就是『方法』的名稱。第一個程式執行方法一定是要用 main 這個名稱!
- String args[]: 傳入此方法的參數值,寫入中括號內 [] ,也可以像本例是空的 (不傳值)!
用中文來解釋的話,這一行有點像這樣:
// Hello World 公開的 類別 此類別的名稱 { 公開的 靜態的 不須回傳值 方法的名稱 (帶入於此的參數) { 在此方法名稱底下的程式碼區段 ... } }
一般來說,初學者只要知道一切都使用 main 這個方法名稱就好了!而且暫時都不要輸入參數,因此保留 String args[] 這個關鍵字就好了! 也就是說,基本上整個程式區段的前兩行是需要背誦記憶的,初學者會改變的只有類別名稱而已~這部份先『背』下來喔!未來就會習慣成自然了!
最後,在類別與方法內部開始,就是一行一行的程式碼了!我們第一個學習的程式碼是『將字串印到螢幕上』這個程式, 也就是『 System.out.println ("字串在這裡"); 』這樣的程式碼了。最終若編譯可以成功,那麼結果就能夠印出我們所寫的字串資料到螢幕上!
最終,我們透過 javac 來進行編譯,亦即是『 javac hello.java 』這個指令串,並且產生 hello.class 這個 java byte code 指令檔。 而使用 java 來執行編譯成功的 hello.class 這個 java byte code!但是要注意!執行時不要加上 .class,也就是要使用『 java hello 』來執行, 不能用『 java hello.class 』來執行的意思!
- 所有方法的進入點: main 主方法
再次強調,一般 java 程式會需要 (1)宣告類別名稱,以及 (2)宣告方法。在這兩個大括號 {{ }} 裡面的就是程式碼。
// Hello World public class hello { <==檔名必須為 hello.java 的意思 public static void main (String args[] ) { System.out.println ("Hello World!!"); <==程式碼在兩個大括號內部 } }
而所有的方法當中,第一個被執行的方法就是 main (main 這個字的中文為『主要』的意思) 這個方法名稱!所以,如果你什麼都不知道,那麼就背下來~ java 程式碼的前兩行當中,第一行的 class 名稱規定為檔名,第二行方法的名稱就規定一定是 main,這樣寫 java 程式時,至少一開始就不會出現問題!
// My Hello to unit II public class Demo1 { public static MAIN {String args[] } { system.out.printin ("Hello Unit II") // print my data } }請依據編譯後的問題,將這個檔案處理妥當!要注意我預計執行的指令以及輸出的結果喔!同時,有問題請查閱螢幕資訊, 另外,也請查看上述的 java 結構說明喔!
基本上,檔名請不要出現減號 (-),所以,鳥哥這邊使用底線作為一個範本。
2.3: java 輸出中文的解決方法
我們畢竟是繁體中文的俘虜,許多時刻,我們在程式碼裡面的註解或者是輸出的資訊,很可能都會使用到中文字型! 如果有中文字型時,可能系統連編譯都不會通過!例如底下的範本:
// 解決中文問題 public class unit02_3_1 { public static void main (String args[] ) { System.out.println ("Hello 我的第二堂課"); } }
當你進行『 javac unit02_3_1.java 』時,系統可能會出現類似底下的錯誤訊息:
unit02_3_1.java:1 error umappable character (0xE5) for encoding x-windows-950
關鍵字是『 umappable character ... encoding 』!那個 encoding 的中文就有文字編碼的意思! 也就是說, java 系統不認識這種編碼格式啦!那回到原本我們編輯這個檔案的 notepad++ 的內容,你點選上方工具列的『編碼』, 預設的編碼為『UTF-8』啊!但是從上面的編譯錯誤訊息,我們發現到檔案編碼是 x-window-950 就是簡稱 CP950 的常見台灣編碼。 因為如此,所以 java 沒辦法聰明到幫我們主動的處理好編碼問題啦!那怎辦?
事實上 java 常見的支援的編碼有很多,與中文相關的大概有:
- Big5
- CNS11643
- EUC_TW
- MS950 或 CP950
- Unicode
- UTF8
因為剛剛查看後,我們知道我們的程式編輯器使用的是 utf8 這個編碼格式,所以,你可以在編譯的時候,強迫 java 使用 UTF8 來編碼即可! 使用的格式為:
C:\Users\dic\java>javac -encoding utf8 unit02_3_1.java
- 如果程式碼當中有中文,且使用的中文編碼為 utf8,那麼該如何下達 javac 的參數?
- 請將上述的範本完成後,並且執行該編譯完成的資料,看看能不能順利的輸出中文資料?
2.4: 解決問題的流程與簡單範例
學習程式語言的目的在於訓練邏輯概念,此外,也有訓練自己找到解決方案的能力。程式語言可以做比較大量的運算,也能夠將你平時可能會做到的日常工作, 變成使用一鍵完成的功能~所以,學學是不錯的。那麼,一般來說,你要如何用程式語言去解決一些問題呢?基本上的流程有點像這樣:
- 分析要解決的問題
- 找出解決問題的步驟,如果涉及到數學方面的計算,通常就稱為演算法 (Algorithm)
- 根據第 2 點來找出對應的程式語言之程式碼,開始程式設計
- 設計完畢開始測試執行 (testing),看看能否解決該問題
- 如果測試結果不對,則回去第 3 步驟開始重新程式設計,直到結束。此步驟稱為 debug
基本上,如果一切順利,通常到第 4 步驟後就結束了!不過,總是想的與做的會不一樣,因此,常常會有意想不到的錯誤會發生, 例如中文編碼錯誤、突然有空白字元等等的。因此,就需要有 debug 的情況啦~通常,程式設計師的功力,大概就從 debug 的時間看出來的...
- 從螢幕上輸出文字的處理方案
假如今天我要在螢幕上面輸出底下的兩行文字,那麼依據上述的處理流程,應該怎麼辦呢?
白日依山盡 黃河入海流 欲窮千里目 更上一層樓
- 分析問題:發現到共有兩行文字要輸出,而且是中文字,沒有其他計算式,所以可以單純使用螢幕輸出指令即可。
- 解決步驟:很簡單,就依序將兩行文字帶入程式碼當中輸出即可。
- 宣告類別名稱為 unit02_4_1 (就是檔名)
- 開啟方法為 main 的程式
- 透過 System.out.println 開始輸入兩行文字
- 關閉 main
- 關閉類別
- 程式設計:雖然可以簡單的從上面的許多程式碼複製過來,不過還是希望同學們自己按照上述的 A, B... 來思考,
然後輸入相對應的程式碼,這樣不但可以練習英文打字,還能夠對程式更有印象!好了,那麼上述的第 C 是什麼呢?有點類似如下:
System.out.println("白日依山盡 黃河入海流"); System.out.println("欲窮千里目 更上一層樓");
- 編譯、執行與測試:開始測試執行流程。過程可能會出現中文字型編碼錯誤的問題,請依據 javac 的可帶入的選項與參數處理編碼!
請依據上述的說明,建立好名為 unit02_4_1.java 的程式,編譯並且執行『 java unit02_4_1 』,看看能不能夠印出兩行中文出來!?
讀者們到現在為止,已經碰過太多的 System.out.println ,這個指令碼如果硬要記憶,你會覺得很疲憊!那怎麼記最快?你可以將他拆解成『 system output print line 』,中文簡單的解釋為:『系統輸出時,請印出一整行的內容』的意思。所以,如果有兩行的時候,就請寫兩次即可!
- 從螢幕上輸出運算結果的處理方案
假設今天你有一個比較麻煩的運算,例如你的學習成績平均值。假設成績為 79, 85, 91, 65, 88 五科成績。
- 分析問題:雖然有運算,不過運算還算簡單,我們可以透過一個簡單的算式來輸出即可。
- 解決步驟:其實使用的算式就是 (79+85+91+65+88)/5 這樣而已。並將結果以 System.out.println 輸出即可。
- 宣告類別名稱為 unit02_4_2 (就是檔名)
- 開啟方法為 main 的程式
- 透過 System.out.println 直接加入文字與運算的算式在內,但是可能要透過連結符號處理資料的輸出
- 關閉 main
- 關閉類別
- 程式設計:System.out.println 的括號裡面不見得一定要加上雙引號,如果是計算式,那麼該程式碼可以把結果直接輸出喔!有點像這樣:
System.out.println("我的平均成績:"+(79+85+91+65+88)/5);
- 編譯、執行與測試:開始測試流程。
從上面的實驗中,我們也能知道,在 System.out.println 的括號內,如果資料要連續輸出,中間可以使用加號 (+) 來連結在一起! 這也是個很重要的實驗!請同學們完成上述的程式運作喔!
2.5: 以彈出式視窗呈現結果
許多時候我們可能不會想要直接在剛剛的 MSDOS 視窗呈現結果,而是想要透過彈出式視窗來顯示這個結果,這時該如何是好? 事實上 Java 已經提供了許多的『外掛』程式讓我們來呼叫使用,直接使用 Java 內建好的界面來處理即可!最簡單的方式,就是呼叫出一個 Java Option Panel (Java 選單面板) 來實做即可!
要讓 java 程式匯入一個套件 (package) ,可以使用 import 來處理即可。而我們想要顯示的訊息視窗,為透過 javax.swing.JOptionPane 這個套件。 而要讓這個套件顯示訊息,就得要使用 show Message Dialog (顯示訊息視窗) 來處理!所以,整體來說,就會變成這樣:
import javax.swing.JOptionPane; .... JOptionPane.showMessageDialog(null,"基本訊息","標題資訊",小圖示); ....
特別注意,上面的訊息資料要用雙引號喔!至於常見的小圖示有:
- JOptionPane.ERROR_MESSAGE
- JOptionPane.INFORMATION_MESSAGE (預設值)
- JOptionPane.WARNING_MESSAGE
- JOptionPane.QUESTION_MESSAGE
- JOptionPane.PLAIN_MESSAGE
- 使用彈出式視窗來顯示你的平均成績
讓我們將剛剛前一個小節的成績計算結果,用彈出式視窗來展示,所以:
- 問題解析:因為需要彈出式視窗的功能,所以需要引用到 javax.swing.JOptionPane 的功能
- 解決步驟:首先在 public class 之前,就要透過 import 將上述的 Java 選項面板套件呼叫進來,
之後將 System.out.println 的地方,改成 JOptionPane.showMessageDialog(null, 訊息) 的模樣,就能夠呼叫彈出式視窗來顯示了。
- 匯入 JOptionPane 的套件
- 宣告類別名稱為 unit02_5_1 (就是檔名)
- 開啟方法為 main 的程式
- 透過 JOptionPane.showMessageDialog 的方法,以彈出式視窗顯示運算結果
- 關閉 main
- 關閉類別
- 程式設計:基本上,可以這樣設計程式即可:
// 嘗試使用 Java Option Panel 面板的功能,用以呼叫彈出式視窗 import javax.swing.JOptionPane; public class unit02_5_1 { public static void main (String args[]) { JOptionPane.showMessageDialog(null, "我的平均成績:"+(79+85+91+65+88)/5 ); } }
- 編譯、執行與測試:如果出現錯誤,記得回去修改 unit02_5_1.java 檔案的內容後,再次重新編譯即可。如果一切順利,就會出現如下的彈出式視窗。
基本上,你可以將文字組合起來看,第一個英文不見得會是大寫,但是在一串程式碼當中,每個字的字首通常會是大寫字元!例如 j option pane 會寫成 JOptionPane, 而 show message dialog 就會變成 showMessageDialog 的意思!這樣先進行部份拆解,然後不懂的英文就丟進 google 翻譯查詢一下,然後花幾分鐘背誦一下該英文字, 那等到將該英文背誦下來,你的程式就不會太難過了!
2.6: 整數與小數
有些時刻我們可能需要使用一些程式來幫我們計算出有用的數據,舉例來說,算出溫度的華氏、攝氏溫度,就是個有趣的例子! 現在,讓我們複習一下,溫度單位的轉換是這樣的:
- °F = 9 / 5 * °C + 32
- °C = 5 / 9 * ( °F - 32 )
你要記得的是, -40 度時,華氏與攝氏溫度會剛剛好一樣!所以驗證可以帶入該參數即可。好,現在讓我們來計算一下, 當大聯盟打棒球時,溫度顯示 81 °F 時,代表溫度是幾度 C 呢?
- 問題分析:要計算溫度的單位轉換,由於是 °F 轉成 °C ,因此要用上面的第二個算式來處理即可。
- 解決步驟:相對簡單,不需要使用彈出式視窗,所以直接使用 System.out.println 即可!
- 宣告類別名稱為 unit02_6_1 (就是檔名)
- 開啟方法為 main 的程式
- 透過 System.out.println 搭配上述的公式即可處理
- 關閉 main
- 關閉類別
- 程式設計:參考前述的資料,帶入 5 / 9 * ( 81 - 32 ) 即可。相關的公式有點像這樣:
System.out.println ("81 度 F 轉成攝氏為: " + 5 / 9 * (81-32) + " 度 C");
- 編譯、執行與測試:開始測試與分析。
經過編譯並且執行之後,你會發現到,見鬼了! 81 °F 變成 0 °C 了!怎麼會這樣?這是由於我們上面的數型態啦! 因為我們的數值都沒有小數點,因此 java 會預設使用整數來處理,所以就會變成上述的模樣!一片慘兮兮~因為 5/9 小於 1 的緣故,所以此時就會變成 0 , 所以 0 乘上任何數,就都會變成 0 囉!就這麼簡單...
那怎麼辦?很簡單!將每個數值後面加上 .0 即可!亦即改成類似 5.0 / 9.0 * ( 81.0 - 32.0 ) 就好了!不相信嘛? 請重新訂正上述的程式碼,重新編譯後計算,看看結果就知道了!
也就是說,其實數值的格式是很重要的!不只在 java 才這樣,很多的傳統語言如果你沒有給予正確的數值格式, 最終的結果就是錯誤的要命!
2.7: 課程中練習
練習是成為高手的捷徑~多做多寫就對了!所以,請嘗試依據完成底下的幾個題目的練習。同時練習時,請務必使用 (1)分析問題 (2)找出解決問題的步驟 (3)開始撰寫程式碼 (4)編譯執行測試 (5)若有問題就繼續回去步驟 2 ~ 4 的流程。
- 完成客製化輸出
有時候為了傳達某些特殊符號,我們可以使用程式來輸出一些文字的排列。例如底下的排列,可能可以適當的表達你的愛意... 請寫出一隻名為 unit02_7_1.java 的程式,當你執行『 java unit02_7_2 』的時候,就會在畫面上輸出底下的排列。
L O V V EEEEE L O O V V E L O O V V EEEEE LLLL O V EEEEE
Hint:不要想太多,很單純的將畫面擷取列印而已!我們還沒有寫到迴圈與其他程式,所以...不要想太多!
- 計算 π 值
計算 π 的方法為『 4 x ( 1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + ...) 』我們現在要計算近似值,請撰寫一隻名為 unit02_7_2.java 的程式, 當執行『 java unit02_7_2 』 的時候,會輸出如下的畫面:
pi = 4 x (1-1/3+1/5-1/7+1/9) = 計算的結果 pi = 4 x (1-1/3+1/5-1/7+1/9-1/11+1/13) = 計算的結果
其中計算的結果是真的計算出來的值,不是單純輸出中文字!基本上,那個值越接近 3.1415... 會越好!
- 圓的週長與面積的計算
基本上,圓的週長與面積,可以透過底下的公式來計算,當然,都與半徑 R 有關:
- 面積: π x R2
- 週長: 2 x π x R
根據上面的公式,撰寫出名為 unit02_7_3.java 的程式碼,當執行『 java unit02_7_3 』時。會輸出類似底下的樣子:
R = 5.5 Area = pi x R x R = 計算的結果 Perimeter = 2 x pi x R = 計算的結果
2.8: 參考資料
- Java 中文的處理方案:https://yichen19.tian.yam.com/posts/17282383
- 詳細的 JOptionPane 的說明https://docs.oracle.com/javase/7/docs/api/javax/swing/JOptionPane.html
- 小狐狸事務所 JOptionPane 的中文解釋http://yhhuang1966.blogspot.com/2014/05/java-swing_18.html
2.9: 課後練習
請先查閱 1.3 小節的介紹,了解雲端系統的登入、繳交資料檔名等等的設計,然後再繼續底下的習題。 最終要上傳的檔案有:
- unit02-4070CXXX-你的名字.docx
- unit02_java.java (純文字檔)
- unit02_myname.java (純文字檔)
- unit02_marathon.java
- 看完本章的內容後,完成底下的問題回答:
- 假如我有一個 java 的程式碼如下,這個檔案我應該要儲存成什麼檔名?
public class say_ya { public static void main (String args[] ) { System.out.println ("哈囉!我是 ya!"); } }
- 承上題,假設這個檔案的中文編碼為 utf8,那麼如何下達編譯的完整指令?
- 承上題,如果我將 main 改成 onlyone 之後: (1)能不能編譯成功? (2)能不能順利執行?為什麼?
- 一般來說,使用程式語言在幫我們完成某些任務,課程中談到,要完成任務的流程是那五個步驟?
- 你要的檔名是 showmecode.java 這樣,然後執行此 java 程式最後只是輸出『 show me the code 』, 你覺得程式碼可以怎麼寫?將程式碼寫下來。(不必執行)
- 在 java 的計算過程中, 1/5 與 1.0/5 的結果分別是多少?為什麼?
- 如果要呼叫出彈出式視窗,一般來說: (1)要載入那一個套件 (package)? (2)單純顯示訊息視窗,應該要執行那一個語法?
- 假如我有一個 java 的程式碼如下,這個檔案我應該要儲存成什麼檔名?
- 建立一個名為 unit02_java.java 的檔案,當執行:『 java unit02_java 』時,會出現如下的結果:
我愛 JAVA J A V V A J A A V V A A J J AAAAA V V AAAAA JJJJ A A V A A
- 建立一個名為 unit02_myname.java 的檔案,當執行:『 java unit02_myname 』時,會出現如下的圖示:
畫面中,請填寫你的姓名與學號! - 參考底下的連結,找出 (1)馬拉松的距離與 (2)世界最佳成績 這兩個數值,然後計算出這個世界紀錄中,換成速度是每小時幾公里?
另外,換成跑速,是每公里跑幾分鐘?這個程式碼的檔名請設定為『 unit02_marathon.java 』,執行的結果有點類似底下的模樣:
(程式碼裡面一定要存在計算式)
https://zh.wikipedia.org/wiki/马拉松長度為: XX.XXX 公里 最佳成績: ?:??:?? 最佳成績時速: YY.YYYY 公里/小時 最佳成績跑速: ZZ.ZZZZ 分鐘/公里