1. 程式人生 > >Java開發筆記(二十四)方法的組成形式

Java開發筆記(二十四)方法的組成形式

經過前面的學習,我們發現演示的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開發筆記(序)章節目錄