三、構造器
本文主要講解類和物件的關係,以及如何建立和初始化物件,對構造器的詳解
1.首先建立乙個類,我這裡建立的是乙個學生類,裡面有學生的姓名、年齡。
public
class
student
public
static
void
main
(string[
] args)
發現即使類中內容是空的,在主方法中仍然可以呼叫出來student類,為啥呢?
接下來我們在out 目錄中找到student.class檔案,開啟看一下
public
class
student
}
發現和原始檔中的**相比較,多出來乙個public student方法,這個方法 ,首先,它的名字和上面的類名相同,其次,它沒有返回值。其實,這就是乙個構造器。
對於無參構造和有參構造,**如下
public
class
student
}
public
static
void
main
(string[
] args)
輸出結果
李華
如果使用了有參構造,就可以讓無參構造中的內容空著,它什麼也不用做
//無參構造
public
student()
//有參構造
public
student
(string name)
public
static
void
main
(string[
] args)
使用new關鍵字呼叫方法,由於方法可以過載,呼叫時會自動匹配到有參構造的方法,即呼叫上面的public student(string name)
結果
李華
由此,我們可以得出一些結論:
乙個類中即使什麼也不寫,它也會存在乙個方法。
使用new關鍵字,本質就是在呼叫構造器。
構造器可以用來初始化值。
注意:如果定義了有參構造,還想用無參構造new物件,就必須顯示無參構造的定義。
建立和初始化物件
類載入,同時初始化類中靜態的屬性 執行靜態 塊 分配記憶體空間,同時初始化非靜態的屬性 賦預設值,0 false null 呼叫student的父類構造器 對student中的屬性進行顯示賦值 如果有的話 執行匿名 塊 執行構造器 返回記憶體位址 注 子類中非靜態屬性的顯示賦值是在父類構造器執行完之...
內部類建立和初始化
package com.rl.innerclass public class outerclass public void setpassword string password public int geta public void seta int a public string getage ...
java學習筆記39 建立和初始化物件
使用new關鍵字建立的時候,除了分配記憶體空間之外,還會給建立好的物件進行預設的初始化以及對類中構造器的呼叫 那麼對main方法中的以下 student s new student 1 為物件分配記憶體空間,將物件的例項變數自動初始化預設值為0 false null。例項變數的隱式賦值 2 如果 中...