溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

構造器重載

發布時間:2020-07-04 17:14:49 來源:網絡 閱讀:302 作者:hehemmm 欄目:開發技術

一、構造器重載概念

        函數重載概念也適用于構造器,條件如下:

    1、函數有相同的名字‘

    2、參數列表不同或返回值類型不同;


    構造器滿足以下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
}
}




二、值類型構造器類型

        

            為了減少多個構造器間的代碼重復,在定義構造器時,可以通過調用其它的構造器來完成實例的構造部分,這個過程稱為構造器代理。構造器代理在值類型和引用類型中使用不同,

            

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)
}
}


三、引用類型構造器橫向代理


            引用類型構造器代理是類構造器代理,由于類有繼承關系,類構造器代理比較復雜,分為橫向代理和向上代理


            1、橫向代理類型類似于值類型構造器代理,發生在同一類內部,這種構造器稱為便利構造器;

             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
}
                
                convenience init(length:Double){
                    self.init(W:length,H:length)
}
                 convenience init(){
                    self.init(length:10.0)
                    self.height = 20.0
}
}


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女