Java:程序不過是幾行代碼的集合

程序不過是幾行代碼的集合。就像下面這樣:
html

public class Test {

public static void main(String[] args) {
System.out.println("hello world");
}

}

對於初學編程的人來講,「hello world」老是繞不開的;學習 Java 編程天然不能例外。說實在話,我在大學一年級學習這寥寥幾行代碼時可費了老大的勁——幾乎用了將近一個月的時間才消化掉這段程序(這可一點不假)。java

記得老師很是「嚴苛」地要求咱們必須在記事本上敲這段代碼,不能在 IDE 中;而且要能在命令行中成功運行,打印出「hello world」。程序員

簡直可貴要命啊!我差一點就要被這幾行代碼摧毀掉信心,換其餘專業了。但幸虧我沒有。就目前來看,IT 行業仍然是一個前程似錦的行業,Java 依然處在編程語言排行榜的領先位置;而我,能夠憑藉 Java 高級開發工程師的職稱在日益艱難的生存環境中混口飯吃。編程

對於「hello world」這段斷碼,我曾經有 3 個不解的地方:數組

  • 爲何 class 前面要有 public?
  • 爲何 main 方法要有參數 String[] args?它好像壓根沒起做用啊。
  • 爲何 main 方法必須是 static void

看到這 3 個問題,你是否是也迫切地想知道爲何?eclipse

新文化運動領袖胡適先生曾說過這樣一句話:「人同畜生的分別,就在於這個‘爲何’上」,這話雖然聽起來不那麼含蓄,但不失爲一種積極的態度。在學習和生活當中,多問一問「爲何」,對咱們的成長有天大的幫助。我相信這一點,你也願意舉雙手贊同。編程語言

通過多年的歷練後,如今的我能夠來回答一下這 3 個問題了(假如答案不能使你滿意的話,請打零分):工具

1)class(類)前面的 public 並非必須的;一個 Java 文件中有且只能有一個 public 類,而且該類名(Test)必須與文件名(Test.java)保持一致。學習

2)main 方法的參數是一個 String 數組,約定俗成的寫法就是String[] args;儘管當前「hello world」程序中並無用到 args 參數,但 Java 編譯器要求 main 方法必需要這麼着(就好像李白他爹給他起名「李白」,因此李白只能叫「李白」)。開發工具

若是想在程序中使用 args 參數,能夠在運行 Java 程序的時候在命令行中鍵入。爲了演示 args 參數的使用方法,咱們把以上代碼稍做調整:

public class Test {

public static void main(String[] args) {
System.out.println("hello world " + args[0]);
}

}

改造後的「hello world」程序,在命令行的編譯、運行命令以下:

3)static表示 main 方法爲靜態方法;靜態方法可經過"類名.方法名"的方式來調用。這句話怎麼理解呢?咱們來看如下代碼:

public class Test {
static int i = 0;

public static void main(String[] args) {
System.out.println("hello world");
i++;

if (i < 5) {
Test.main(args);

}
}
}

一般,方法內部調用方法自身(Test.main(args) 就是"類名.方法名"的形式)會形成死循環,但咱們使用了一個靜態變量 i 來控制循環的次數,最多 5 次。

4)void表示 main 方法沒有返回結果;既然 main 方法是主方法,做爲程序的入口,天然是不須要返回結果的,不然返回結果給誰看呢?就好像你就是司令員,顯然不須要再向軍長、師長彙報工做。

看完以上內容,你是否是以爲信息量有點大?對於 Java 初學者來講,我想大概會吧,畢竟我當初可花了一個月的時間才消化掉。若是你說你只花了 5 分鐘就搞定了,我就真該懷疑本身是否是塊幹「程序猿」的料了。

但我和個人老師不同,我不建議你使用記事本一個字母一個字母敲完這段程序並在命令行中運行——明明有 Eclipse 這種爲程序員減小複雜性的集成開發工具,爲何不用呢?

腦海中時常有「程序不過是幾行代碼的集合」這句話很是重要,有了這個信念,不管再龐大的項目都不須要怕了。由於無論這個項目的代碼成千行,仍是成萬行,最終均可以拆分爲幾行代碼,難道不是嗎?

上一篇:對《Java編程思想》讀者的一點建議

下一篇:Java:程序不過是幾行代碼的集合

相關文章
相關標籤/搜索