引自 c#中的構造方法
當例項化乙個類時,系統會自動對這個類的屬性進行初始化
數字型初始化成0/0.0
string型別初始化成null
char型別初始化成\0
構造器就是構造方法,能夠被過載(同類中不同引數列表的構造器),
不能夠被重寫(子類使用super方法可以呼叫)。
不能說能被繼承,因為能夠呼叫,但是不能重寫。
使用構造方法的好處:
1.對多個屬性進行賦值時,不需要重複的寫例項名
2.可以保證使用者在new乙個物件時,必須對某乙個屬性進行賦值
3,在建立物件時,對制度屬性進行初始化
當我們定義好乙個類後,如果沒有寫構造方法,那麼系統會自動給我們加上乙個預設的沒有引數的構造方法,在這個構造方法中,什麼也不做,我們也看不到
我們可以定義乙個構造方法:
構造方法是乙個特殊的方法,他的名字和類的名字相同,並且沒有返回值,連void都可以省略不寫,我們一旦手寫乙個構造方法後,系統原先預設給我們新增的那個無參的構造方法就不會給我們新增了
要例項化乙個類,必須呼叫他的構造方法
總結:構造方法用來建立物件,並且可以在構造方法中對物件進行初始化
構造方法是用來建立物件的特殊方法,方法名和類名一樣,沒有返回值,連void都不用
構造方法可以有引數,new物件的時候傳遞引數即可
如果不指定構造方法,則類有乙個預設的無參構造方法
如果指定了構造方法,則不再有預設的無參構造方法,如果需要無參構造方法,則需要自己來寫
構造方法可以過載,也就是有多個引數不同的構造方法。
練習:寫乙個ticket類,有乙個距離屬性(本屬性唯讀,在構造方法中賦值),不能為負數,有乙個**屬性,**屬性為唯讀,並且根據距離計算**(1元/公里):
0-100公里:票價不打折
101-200公里 :總額打9.5折
201-300公里:總額打9折
300公里以上:總額打8折
有乙個方法,可以顯示這張票的資訊
**如下:
usingsystem;
using
system.collections.generic;
using
system.text;
namespace
構造方法
double
length;
double
price;
public
double
length
return
length; }}
public
double
price
else
if (length > 100 && length <= 200
)
else
if (length > 200 && length <= 300
)
else
if (length > 300
)
return
price;}}
public
void
showinfo()
,票價:
",length,price);}}
}
c 中的構造方法
c 基礎 類的構造方法 當例項化乙個類時,系統會自動對這個類的屬性進行初始化 數字型初始化成0 0.0 string型別初始化成null char型別初始化成 0 構造器就是構造方法,能夠被過載 同類中不同引數列表的構造器 不能夠被重寫 子類使用super方法可以呼叫 不能說能被繼承,因為能夠呼叫,...
C 繼承中的構造方法
繼承中的構造方法 乙個子類物件在例項化之前,需要先例項化從父類繼承到的部分。例項化父類部分,缺省會使用父類中無參的構造方法。先看以下問題,此處cat繼承了父類animal會報錯,報錯如下 解決方案 如下 兩種解決方案 class animal 有參構造方法 public animal string ...
C 構造方法
構造方法又叫建構函式,它是一種特殊的方法,因為構造方法本身沒有返回值,並且通常是public訪問型別,方法的名稱必須與類名相同。構造方法在類例項建立之前執行,用來初始化物件。所有的類都有構造方法,如果沒有定義的構造方法,系統預設生成空的構造方法 如果自己定義了預設的構造方法就會失效了。構造方法用於對...