經過前面的學習,我們發現演示的Java代碼越來越複雜,而且每個例子的代碼都堆在入口方法main內部,這會導致如下問題:1、一個方法內部堆砌了太多的代碼行,看著費神,維護起來也吃力;2、部分代碼描述的是通用演算法,比如牛頓迭代法、二分查找法等等,這些通用的演算法代碼結構固定,很多地方會用到,倘若每次都複製 ...
經過前面的學習,我們發現演示的Java代碼越來越複雜,而且每個例子的代碼都堆在入口方法main內部,這會導致如下問題:
1、一個方法內部堆砌了太多的代碼行,看著費神,維護起來也吃力;
2、部分代碼描述的是通用演算法,比如牛頓迭代法、二分查找法等等,這些通用的演算法代碼結構固定,很多地方會用到,倘若每次都複製粘貼無疑是苦大仇深;
基於此,亟需對紛繁複雜的代碼段加以梳理,一方面把代碼行依據功能進行劃分,這樣剝離出來的各段代碼不會相互影響;另一方面封裝通用的演算法代碼,做到只定義一次,就能被多次調用。這樣既提高了代碼的可讀性,也使得代碼易於維護,還能減少無謂的重覆勞動。
就代碼的封裝途徑而言,每種編程語言都採取了方法包裝的形式,通過定義形態完整、兼具輸入和輸出功能的新方法,即可將一大段邏輯複雜的代碼行分解成各個功能單一的代碼塊,然後在原位置依次調用這些代碼塊對應的方法名稱便省事了。可是費了許多口舌,這個方法定義到底是怎樣的呢?前面的大部分演示代碼,基本都裝載在對應代碼文件的main方法中,這個main方法不但是該代碼文件的入口,也是程式員最開始接觸到的常用方法,接下來通過main方法來研究一下究竟要如何定義一個方法。且看下麵這個最簡單main方法代碼:
public static void main(String[] args) { // String[]表示字元串類型 }
上面的main方法除了名稱與包括內部代碼的花括弧之外,方法名稱左右兩邊尚有幾個關鍵詞,從而構成了完整的方法定義形式“訪問許可權類型 可選的static 返回值的數據類型 方法名稱(參數類型 參數名稱)”,這幾個關鍵詞分別介紹如下:
1、最前面的public意思是公開的,表示該方法可被其它代碼文件訪問;反過來,倘若此處寫的是private,則表示該方法不可被其他文件訪問。
2、public後面的static,字面意思是靜態的,表示該方法類似通用函數,可被外部直接訪問。比如Math工具類的round、sqrt、abs、sin等方法都屬於靜態方法。
3、main名稱前面的void,表示該方法不返回任何數據,即不存在輸出參數。如果該方法需要返回一個整型數,則此處應填int;如果該方法需要返回一個雙精度數,則此處應填double。
4、main名稱後面緊跟著帶參數的圓括弧,表示該方法需要填寫指定的輸入參數。如果不存在輸入參數,則圓括弧內部留空;如果存在好幾個輸入參數,則以逗號分隔多個參數,形如“參數1類型 參數1名稱, 參數2類型 參數2名稱”這樣。
方法的輸入參數,可以在方法調用處填寫,也可能是Java命令行輸入的。譬如以下的代碼例子,準備演示如何讀取命令行敲入的命令參數:
package com.method.function; //說明main方法的格式定義 public class Simple { // 方法的定義格式為:“訪問許可權類型 可選的static 返回值的數據類型 方法名稱(參數類型 參數名稱)” // 其中多個參數之間以逗號分隔,如“參數1類型 參數1名稱, 參數2類型 參數2名稱” // 如果該方法無需返回任何數值,則返回值的數據類型填void public static void main(String[] args) { // String[]表示字元串類型 if (args.length == 0) { System.out.println("您沒有輸入任何參數"); } // 依次取出並列印該Java程式在命令行執行的輸入參數 for (int i=0; i<args.length; i++) { int seq = i+1; System.out.println("您輸入的第"+seq+"個參數是:"+args[i]); } } }
先打開DOS視窗,進入Simple.java的所在目錄,運行下列命令編譯程式:
javac -encoding UTF-8 Simple.java
再回到src目錄之下,輸入下述指令:
java com.method.function.Simple
此時程式輸出界面如下圖所示:
可見列印的文字為“您沒有輸入任何參數”,這是因為命令行的Simple後面沒帶任何參數,現在往Simple右邊添加一個參數“hello”,則修改後的程式指令是這樣的:
java com.method.function.Simple hello
再次運行Simple程式,此時界面輸出信息如下圖所示:
這下看到列印文字為“您輸入的第1個參數是:hello”,說明程式成功讀到了命令行的輸入參數。趁熱打鐵接著往Simple右邊添加第二個參數“world”,於是擁有兩個參數的程式指令變成了下麵模樣:
java com.method.function.Simple hello world
第三次運行Simple程式,此時程式運行界面如下圖所示:
該程式果然不負眾望,把“hello”和“world”這兩個參數全都列印出來了,從而驗證了main方法的輸入參數是有效的。
更多Java技術文章參見《Java開發筆記(序)章節目錄》