無參構造與有參構造

2022-09-02 00:57:12 字數 1213 閱讀 8139

構造方法根據有無引數分為無參構造和有參構造

無參構造語句:

[修飾符]  類名()
有參構造語句:

[修飾符] 類名(type a1,type a2...)
它倆構成了方法過載。

區域性變數和成員變數的優先順序問題:(如下述**)

public

class

dog}

此時標記的name是無法賦值給name的,因為區域性變數的優先順序高於成員變數,name只會找到name

name這種情況怎麼解決呢?

第一種方法:

public

class

dog}

將這個形參裡的屬性名變化一下以示區分,此時name在區域性變數裡面找不到name就會去成員變數裡面找。

第二種方法:

關鍵字   this(可用於訪問物件本身的屬性)

具體例項可跳到 this 環節。。。

有參構造中常見問題:

一般類裡沒宣告構造的話,系統預設的是無參構造;

如果宣告了有參構造,但是其它類傳過來的資料型別或者屬性個數都不匹配的話,那麼系統就會報錯,

此時咱們程式設計師就需要習慣性的兩個構造都宣告一下。

舉例說明:(下述類的有參構造只構造了名字和品種,但是沒有宣告無參構造)

1

public

class

dog14

*/15

16public dog(string _name,string _strain)

2223

public

void

showinfo()

29 }

另乙個類的屬性賦值:

9-13行**就是解決方案。

***習慣性的兩個構造都宣告一下

有參構造與無參構造

定義person類 public class person 2.有參構造 一旦定義有參構造,無參就必須顯示定義 public person string name main函式呼叫 person person newperson 和平 system.out.println person.name 一...

有參構造與無參構造

構造方法是一種特殊的方法,它是乙個與類同名且返回值型別為同名類型別的方法。物件的建立就是通過構造方法來完成,其功能主要是完成物件的初始化。當類例項化乙個物件時會自動呼叫構造方法。構造方法和其他方法一樣也可以過載。修飾符 類名 如果開發中沒有定義無參構造方法,jvm預設給類分配乙個無參構造,形如 pu...

構造方法 空參構造 有參構造

1.給物件的資料或屬性進行初始化 2.特點 一 方法名與類名相同 二 沒有返回值型別,連void都沒有 三 沒有返回值 四 構造方法不能用物件呼叫,在建立物件時,系統會自動呼叫 public class play class person public person string name,int ...