Java 學習筆記(01)
mywang88
2018-11-09
第一個 java 程式 Hello World
開發環境:IntelliJ IDEA 2018.2.5
原始檔名:HelloWorld.java
程式碼:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("haha");
}
}
右鍵,選擇 Run 'HelloWorld.main()'
,執行結果是螢幕輸出:
haha
如果不使用 IDE ,也可以在命令列模式下執行:
javac HelloWorld.java
java HelloWorld
分析:
一個 java 指令碼就是一個類,或者說一個類的定義指令碼。
類名,要跟原始檔的名稱一致。同時,類名應該遵守首字母大寫的駝峰命名法。
當要執行一個 java 指令碼(或者說程式,類)的時候,執行的實際上是這個指令碼所定義的類中的名為 main 的方法(方法,即類中的函式)。換言之,如果一個類中沒有名為 main 的方法,它就不能被作為一個程式直接執行。
一個沒有 main 方法的 java 類(指令碼)雖然無法直接執行,但它可以被別的(能夠執行)的類引用。
main 方法,似乎也被稱為“入口”。
接下來,逐句解析這個程式。
public
public 關鍵字,是一個**“訪問控制修飾符”,翻譯為“公共的”**,表示它修飾的東西可以被其它所有類訪問。它可以用來修飾類,也可以用來修飾方法。
public class HelloWorld{
}
class 關鍵字用來對類進行定義(宣告)。在這裡,它定義了一個名為 HelloWorld 的類。花括號中為類的具體內容。
static
static 關鍵字,翻譯為**“靜態的”**。
用 static 修飾的某個“方法”,可以在沒有建立(它所屬於的)類的物件(例項)的情形下被呼叫,即:
類名.方法()
void
void 關鍵字,翻譯為**“無返回值”**,表示所修飾的方法沒有返回值。
public static void 共同修飾了要建立的方法 main ,表示這個方法是公共的、靜態的、無返回值的。
main(String[] args){
}
這個語句定義了一個名為 main 的方法。
小括號中定義了這個方法的輸入引數。輸入的引數的型別為 String[]
,其中 []
表示這是一個數組,而 String
表示陣列中的元素的型別為“字串”,即輸入的引數型別為一個“由字串組成的陣列”。輸入的引數,在呼叫本方法時,會被賦值給一個叫做 args
的變數(形參)。
花括號中為本方法的具體內容。
由於 main 方法的返回型別是 void ,因此,在方法的具體內容中沒有 return
語句。
System.out.println("haha");
System 是 java.lang 包下的一個類。
out 是 System 類的一個屬性,它的型別是 PrintStream。
PrintStream 類包含一個名為 println 的方法,這個方法的作用是將傳遞給它的引數,本例中是字串“haha”,列印到螢幕上。
綜上,這個語句呼叫了 System 類的 out 屬性的 println 方法。
在 java 語言規範中,分號代表一個語句的結束。
小結
一個小小的 HelloWorld 例子中竟然包含了如此多的 java 知識,充分體現出了 java 面向物件的語言特徵,學到了不少。
筆者不久前剛開始學習 Python,忍不住寫了個對應的 Python 指令碼:
class HelloWorld:
@staticmethod
def main():
print('haha')
HelloWorld.main()
當然,在接觸面向物件程式設計之前,筆者更傾向於寫成:
print('haha')
開始領會面向物件吧…