Java中通過構造方法給成員變數賦值的一些感悟

2021-08-22 08:56:57 字數 884 閱讀 3067

在繼承出現之前,給乙個類中的成員屬性賦值有4種方式:

1)顯示初始化  2)構造方法  3)set***方法   4)在程式中建立物件後再進行賦值(成員屬性沒有被私有的情況)

當這個類被另外乙個類繼承後,即成為了父類,而且成員屬性都被私有,這時有幾種方式賦值呢?

1、父類來賦值:父類仍然可以通過上述的方式給成員屬性賦值

2、子類來賦值:因繼承了父類,相同的屬性不會再去定義了,因此顯示初始化顯然沒戲了;而set***方法呢得先建立子類的物件再去呼叫,建立物件就伴隨著構造方法,因此也歸結到構造方法這;

1)通過子類的有參構造方法:

① 程式中建立物件new son(含實參),預設呼叫父類的空參構造方法,這步沒太大用,接下來涉及到這一步的就不再重複說了。之後呼叫自己的含參構造方法public son(含形參),而子類含參構造方法中是無法通過this.name=name賦值給成員變數(因為父類私有,子類無法繼承,無法直接訪問),所以還是得呼叫父類的有參建構函式super(含形參)進行賦值,因為在程式中傳入了實參,因此在這就不用再賦實參了。

2)通過子類的無參構造方法:

① 程式中建立物件new son(),預設呼叫空參構造方法public son(),然後在該構造方法中呼叫父類的含參建構函式super(含實參)進行賦值,然後這有乙個細節需要理解,因為在程式中是沒有傳入具體實參的,因此在呼叫父類有參建構函式時得附上具體的實參;

② 程式中建立物件new son(),預設呼叫無參構造方法public son(),然後該構造方法裡呼叫自己的含參建構函式this(含實參),在子類該含參的構造方法第一行呼叫父類的有參建構函式super(含形參),和之前一樣,因為在程式中是沒有傳入具體實參的,因此在呼叫自己有參建構函式this(有參)時得賦上具體的實參;

Java中的構造方法

建構函式 1.函式名與類名相同 2.不用定義返回值型別,不可以寫return語句 3.物件建立時就會呼叫相應的建構函式,所以建構函式的作用可以給物件進行初始化 4.當乙個類中沒有定義建構函式時,建立物件時系統會預設給該類加乙個空引數的建構函式,且其許可權和類一致否則無法建立 5.當在類中自定義了建構...

Java中的構造方法

1 構造方法 作用 給物件的資料進行初始化 格式特點 a 方法名和類名相同 public void student b 沒有返回值型別 修飾符 返回值型別 方法名 c 沒有返回值。沒有用return帶明確的值回來。2 構造方法注意事項 a 如果你不提供構造方法,系統會給出缺省無參構造方法 b 如果你...

Java中的構造方法

構造方法及其作用 構造方法是類中一種特殊的方法 它一般由系統在建立物件 及類例項化 是自動呼叫,構造方法是物件中第乙個被執行的方法,主要用於申請記憶體,對類的成員變數進行初始化等操作。建立物件,給物件中的成員進行初始化。構造方法的特點 構造方法及注意事項 如果我們沒有給出構造方法,系統將會自動提供乙...