升級版的“Hello World”
還記得之前寫過的程序嗎?它是這個樣子的:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello Java World!");
System.out.println("你好,Java世界!");
}
}
在很多教程中,第一個程序都是這樣的:輸出一行打招呼的語句。因此這種程序一般被稱爲Hello World程序。不過這並不是一個很好的程序,因爲它只有輸出沒有輸入,顯得缺乏交互能力。所以我們可以寫一個升級版的“Hello World程序”:
import java.util.Scanner;
public class Hello {
public static void main(String[] args) {
System.out.println("請輸入您的姓名:");
Scanner sc=new Scanner(System.in);
String name;
name=sc.next();
System.out.println("hello "+name);
}
}
具體方法之前已經講過,不再贅述。不過,如果你覺得每次寫個簡單程序都要在Eclipse中新建一個項目,有點麻煩了。好在我們可以直接在同一個項目中創建多個源文件。創建和運行方法與第一個源文件相同。但可能會帶來一些問題,因此這種操作僅適用於學習,在正式項目中不要這樣做。具體原因一會兒就會講到。
運行這個程序之後,Eclipse下方的Console欄中會出現“請輸入您的姓名:”,然後程序會暫停執行,這時請用鼠標單擊Console欄,然後在其中輸入一個名字,例如zhangsan,按下回車鍵,就會顯示“hello zhangsan”。
這個程序到底發出了哪些命令
我們現在把這個程序拆開,一行一行來看看它到底發出了那些指令。
import java.util.Scanner;
,import表示導入。因爲有些功能會經常被使用到,我們沒有必須每次寫程序都重複寫這些代碼,更高效的做法就是提前把這些常用功能代碼寫好,然後在我們編程的時候通過import
語句將其導入到當前程序中,我們就可以直接使用它們而無需重新編寫了。import
語句必須寫在源文件的開頭部分。public class Hello { ... }
,這是一個類的定義。public
表示訪問權限,我們會在後麪包管理這一部分詳細說明;class
表示定義一個類,類是Java程序的基本單位;Hello
是類的名字;一對花括號{}
包含了類的所有內容,凡是花括號之外的內容都不屬於這個類。花括號可以嵌套出現,這時需要注意括號的配對,第一個{
和倒數第一個}
是一對,第二個{
和倒數第二個}
是一對,餘此類推。public static void main(String[] args) { ... }
,這是主方法的定義,主方法是程序的入口點,程序都是從主方法開始執行的,因此每個軟件,無論複雜還是簡單,都有且只有一個主方法。static
表示這是一個靜態方法,我們會在後面進行詳細說明;void
表示沒有返回值;main
表示主方法;(String[] args)
表示主方法的參數,這是一個字符串類型的數組;花括號中是這個主方法的內容。好的,我明白,現在出現了很多新名詞,而且眼下是很難完全明白的,所以,我們現在只需要明白一件事:凡是主方法,都是這個寫法,先記下來。System.out.println("請輸入您的姓名:");
,輸出提示信息“請輸入您的姓名:”。System.out.println()
是用於輸出信息的,小括號中的信息會被輸出。Scanner sc=new Scanner(System.in);
,創建一個Scanner類型的對象sc,從名字可以看出,這個對象用於掃描。它的掃描對象是System.in
,也就是系統輸入,凡是向系統輸入的信息,對象sc都可以掃描到。從而我們可以利用它獲得鍵盤輸入的信息。String name;
,定義字符串(String)類型的對象name。name=sc.next();
,對象sc調用next()方法,獲取從鍵盤輸入的信息,然後保存到字符串對象name中。System.out.println("hello "+name);
,輸出“hello ”和剛纔通過鍵盤輸入的名字。
重看程序
現在我們已經瞭解了每一行代碼的作用,那麼這個程序就可以翻譯成我們的白話了:
導入必要的已完成程序;
定義一個類hello{
進入主方法main{
輸出提示信息,要求用戶輸入姓名;
創建捕捉鍵盤輸入的對象sc;
創建保存輸入信息的字符創類型對象name;
輸出hello和剛纔輸入的信息;
}
}
這樣是不是好理解多了?
也許還有些名字比較陌生,沒有關係,隨着學習的深入,練習的增多,我們會對它們越來越熟悉,理解越來越深入,使用上也更加得心應手。
02