您好,登錄后才能下訂單哦!
一、構(gòu)造器重載概念
函數(shù)重載概念也適用于構(gòu)造器,條件如下:
1、函數(shù)有相同的名字‘
2、參數(shù)列表不同或返回值類型不同;
構(gòu)造器滿足以下2個條件:
class Rectangle{ var width:Double var height:Double init(width:Double,height:Double){ self.width=width self.height=height } init(W width:Double,H height:Double){ self.width=width self.height=height } init(length:Double){ self.width=length self.height=length } init(){ width = 10.0 height = 20.0 } }
二、值類型構(gòu)造器類型
為了減少多個構(gòu)造器間的代碼重復(fù),在定義構(gòu)造器時,可以通過調(diào)用其它的構(gòu)造器來完成實例的構(gòu)造部分,這個過程稱為構(gòu)造器代理。構(gòu)造器代理在值類型和引用類型中使用不同,
struct Rectangle{ var width:Double var height:Double init(width:Double,height:Double){ self.width=width self.height=height } init(W width:Double,H height:Double){ self.init(width:width,height:height) } init(length:Double){ self.init(width:length,height:length) } init(){ self.init(width:60,height:80) } }
三、引用類型構(gòu)造器橫向代理
引用類型構(gòu)造器代理是類構(gòu)造器代理,由于類有繼承關(guān)系,類構(gòu)造器代理比較復(fù)雜,分為橫向代理和向上代理
1、橫向代理類型類似于值類型構(gòu)造器代理,發(fā)生在同一類內(nèi)部,這種構(gòu)造器稱為便利構(gòu)造器;
2、向上代理發(fā)生在繼承情況下,在子類型構(gòu)造過程中要先調(diào)用父類構(gòu)造器,初始化父類的存儲屬性,這種構(gòu)造器稱為指定構(gòu)造器。
class Rectangle{ var width:Double var height:Double init(width:Double,height:Double){ self.width=width self.height=height } init(W width:Double,H height:Double){ self.width=width self.height=height } convenience init(length:Double){ self.init(W:length,H:length) } convenience init(){ self.init(length:10.0) self.height = 20.0 } }
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。