Java 學習筆記(01)
mywang88
開發環境: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')
開始領會面向對象吧…