welcom ! Handel home

2014年7月10日 星期四

Swift Class demo 建構式 and 繼承



Class demo


main.swift

let padX1 = iPadX()
println("\(padX1.id)")
println("\(padX1.type)")
println("\(padX1.capacity)")
println("\(padX1.xRate)")
let padX2 = iPadX(newXType:"iPadX mini", newXCapacity:32)
println("\(padX2.id)")
println("\(padX2.type)")
println("\(padX2.capacity)")

println("\(padX2.xRate)")



===================================================================

class iPad
{
    let id:String
    var type:String
    var capacity:Integer
     
     
    init(){
        //透過NSUUID隨機產生代碼
        let UUID:NSUUID = NSUUID.UUID()
        let stringId:String = UUID.UUIDString
        //並設定為iPAD的UDID
        self.id = stringId
         
         
        //設定type與capacity的初始值
        self.type=""
        self.capacity=0
    }
     
     
    //另外提供一個有參數的init,
    //以在建立iPad物件時,
    //可指定type與capacity的值,
    //當然,一個類別是可以擁有多個init的,
    //只要參數的個數不同,
    //或參數的個數相同但型別不同的init,
    //皆可同時存在
    init(newType: String, newCapacity:Integer) {
        //透過NSUUID隨機產生代碼
        let UUID:NSUUID = NSUUID.UUID()
        let stringId:String = UUID.UUIDString
        //並設定為iPAD的UDID
        self.id = stringId
         
         
        self.type = newType
        self.capacity = newCapacity
    }


===================================================================
//iPadX繼承自iPad
class iPadX : iPad
{
    //有個xRate變量屬性
    var xRate:Integer
     
    //當自訂init建構式時
    init(){
        //先設定完目前物件屬性的初始值
        xRate = 10
        //最後一行必須透過super關鍵字,
        //去呼叫iPad的init()建構式,
        //注意,一定要是最後一行
        super.init()
    }
     
     
    //當自訂有參數的init建構式時
    init(newXType:String, newXCapacity:Integer){
        //先設定完目前物件屬性的初始值
        xRate = 10
        //您有可以透過super呼叫有參數的init建構式,
        //但注意,一定要是最後一行
        super.init(newType:newXType, newCapacity:newXCapacity)
    }
}






沒有留言: