java構造函數和一般函數的區別

構造函數:用於給對象進行初始化,是給與之對應的對象進行初始化,它具有針對性,函數中的一種。

特點:1. 該函數的名稱和所在類的名稱相同。2. 不需要定義返回值類型。3. 該函數沒有具體的返回值。

記住:所有對象創建時,都需要初始化纔可以使用。

注意事項:一個類在定義時,如果沒有定義過構造函數,那麼該類中會自動生成一個空參數的構造函數,爲了方便該類創建對象,完成初始化。如果在類中自定義了構造函數,那麼默認的構造函數就沒有了。

一個類中,可以有多個構造函數,因爲它們的函數名稱都相同,所以只能通過參數列表來區分。

所以,一個類中如果出現多個構造函數。它們的存在是以重載體現的。

構造函數和一般函數有什麼區別呢?

1:兩個函數定義格式不同。

2:構造函數是在對象創建時,就被調用,用於初始化,而且初始化動作只執行一次。一般函數,是對象創建後,需要調用才執行,可以被調用多次。

什麼時候使用構造函數呢?

分析事物時,發現具體事物一出現,就具備了一些特徵,那就將這些特徵定義到構造函數中。

構造代碼塊和構造函數有什麼區別?

構造代碼塊:是給所有的對象進行初始化,也就是說,所有的對象都會調用一個代碼塊。只要對象一建立,就會調用這個代碼塊。

構造函數:是給與之對應的對象進行初始化。它具有針對性。

Person p=new Person();

創建一個對象都在內存中做了什麼事情?

1:先將硬盤上指定位置的Person.class文件加載進行內存。

2:執行main方法時,在棧內存中開闢了main方法的空間(壓棧-進棧),然後在main方法的棧區分配了一個變量。

3:在堆內存中開闢了一個實體空間,分配了一個內存首地址。

4:在該實體空間中進行屬性的空間分配,並進行了默認初始化。

5|:對空間中的屬性進行顯示初始化。

6:進行實體的構造代碼塊初始化。

7:調用該實體對應的構造函數,進行構造函數初始化。

8:將首地址賦值給p,p變量就引用了該實體。(指向了該對象)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章