1. 程式人生 > >java 構造方法,static關鍵字,main方法修飾解釋

java 構造方法,static關鍵字,main方法修飾解釋

首先,一個java檔案中,只能有一個對外公開的類,也就是 只能有一個public修飾的類.注意:這裡的java檔案,也就是 建立的類檔案.java檔案(經過JRE編譯成.class檔案在虛擬機器上執行).

構造方法: 對物件的屬性(成員變數)初始化.

寫法:1.方法名必須與類相同

2.沒有返回值型別

3.沒有返回值即沒有return

public  class ArrayTools {
//這裡定義了一個無參建構函式	
	private ArrayTools() {
		
	}
構造方法是系統自動呼叫的,在初始化物件(new物件)時自動呼叫.無法自己呼叫構造方法.如果是隻有一個無參建構函式,理論上可以不寫,由系統自動補全.但是講到下面有引數的建構函式的情況下另說.

建構函式的過載

建構函式也符合函式過載規則

建構函式注意事項: 如果定義了一個有參的建構函式,那麼必須還要把無參建構函式補上,因為此時系統不會再幫你寫無參構造函數了.不寫會報錯.

static關鍵字

static (靜態)可以修飾變數,此時的變數就叫靜態變數.同樣,它也可以修飾方法,此時別修飾的方法就叫靜態方法.

靜態變數:不依賴物件,靜態變數被載入的時候,物件還沒有建立.

靜態變數的特點:1.隨著類的載入而產生

2.建立優先於物件存在

3.可以使用類名去呼叫

使用靜態變數的好處:對於多次需要使用的變數,把它們變成靜態變數,可以節省記憶體空間,因為一旦被創建出來的靜態變數,它們都是共享的.

靜態變數與成員變數的區別:

 靜態變數成員變數

1.所屬不同屬於類(類變數)屬於物件,(例項變數)

2.記憶體中儲存位置不同    方法去的靜態區 堆

3.載入到記憶體的時機不同    隨著類載入而載入隨著物件建立而建立4.

4.呼叫方法不同直接使用類呼叫例項的物件才能呼叫

靜態方法中,不能使用成員變數,只能使用靜態變數和靜態方法.

 靜態方法呼叫,使用類名.方法呼叫,   靜態方法又叫類方法.

一般java檔案執行後,記憶體表現步驟:

1.類首先在執行時會被載入到方法區

2.載入類方法區的同時,掃描是否有靜態變數,方法.有的話就直接載入到方法區裡的靜態區

3.main 方法入棧(壓棧)

4.如果main方法有new物件,就在堆記憶體中建立物件

5.把地址賦給main方法中定義物件的物件名

6.同理,如果main方法裡有其他方法,依次進入,本著先進後出的棧空間原則,彈出棧之後,其在方法裡定義的區域性變數和宣告的變數都會釋放,到最後main 方法也出棧

7.程式結束,此時,就此java檔案而已棧空間都已經釋放,堆空間裡的物件都變成垃圾,等著某一時刻被GC 回收

public class Testmain {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}
解釋main 方法各個關鍵字之前,首先強調一點:main  並不是Java 關鍵字,它只是JVM在執行.class 檔案時的入口標誌.

Public JVM呼叫main,需要訪問的許可權

static JVM呼叫main時候,不再需要建立物件

void  不需要main 有任何返回值

main  在呼叫程式的時候,程式的入口,並不是關鍵字
String[] args  接收才能夠鍵盤的輸入(基本沒用,瞭解即可)

 上述幾個單詞中,能改的也就只有string[] 陣列的形參名字(args) 能改 . (不過意義不大)

其他的,一概不能更改,約定俗成的,新手也不需要在這方面做過多糾結.照著打,打就了就懂了.程式是寫出來的,多打,多練,終會成功!