1. 程式人生 > >Java 學習筆記(01)

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");

Systemjava.lang 包下的一個類。

outSystem 類的一個屬性,它的型別是 PrintStream

PrintStream 類包含一個名為 println 的方法,這個方法的作用是將傳遞給它的引數,本例中是字串“haha”,列印到螢幕上。

綜上,這個語句呼叫了 System 類的 out 屬性的 println 方法。

在 java 語言規範中,分號代表一個語句的結束。

小結

一個小小的 HelloWorld 例子中竟然包含了如此多的 java 知識,充分體現出了 java 面向物件的語言特徵,學到了不少。

筆者不久前剛開始學習 Python,忍不住寫了個對應的 Python 指令碼:

class HelloWorld:
	@staticmethod
	def main():
		print('haha')

HelloWorld.main()

當然,在接觸面向物件程式設計之前,筆者更傾向於寫成:

print('haha')

開始領會面向物件吧…