《從零開始學Swift》學習筆記(Day 36)——靜態方法

智捷關東昇發表於2016-03-18

原創文章,歡迎轉載。轉載請註明:關東昇的部落格

  靜態方法與靜態屬性類似,Swift中定義了靜態方法,也稱為型別方法。靜態方法的定義與靜態屬性類似,列舉和結構體的靜態方法使用的關鍵字是static;類靜態方法使用的關鍵字是class或static,如果使用static定義,則該方法不能在子類中被重寫(override);如果使用class定義,則該方法可以被子類重寫。

結構體靜態方法
  看一個結構體靜態方法的示例,程式碼如下:

struct Account {

    var owner: String = "Tony"                //宣告例項屬性賬戶名
    static var interestRate: Double = 0.0668  //宣告靜態屬性利率

    static func interestBy(amount: Double) -> Double {//定義靜態方法

    return interestRate * amount
    }

    func messageWith(amount: Double) -> String {        //定義例項方法

    let interest = Account.interestBy(amount)
    return "\(self.owner) 的利息是\(interest)"

    }
}

//呼叫靜態方法
print(Account.interestBy(10_000.00))

var myAccount = Account()    
//呼叫例項方法
print(myAccount.messageWith (10_000.00))

列舉靜態方法
  看一個列舉靜態方法的示例,程式碼如下:

enum Account {

    case 中國銀行
    case 中國工商銀行
    case 中國建設銀行
    case 中國農業銀行

    static var interestRate: Double = 0.0668      //宣告靜態屬性利率

    static func interestBy(amount: Double) -> Double {    //定義靜態方法
    return interestRate * amount
    }
}

//呼叫靜態方法

print(Account.interestBy(10_000.00 )) //呼叫靜態方法

  從示例可以看出,結構體和列舉的靜態方法使用定義沒有區別。

類靜態方法
  看一個類靜態方法的示例,程式碼如下:

class Account {

    var owner: String = "Tony"                 //賬戶名
        //可以換成static
    class func interestBy(amount: Double) -> Double {    //使用關鍵字class定義靜態方法
    return 0.08886 * amount
    }
}

//呼叫靜態方法
print(Account.interestBy(10_000.00 ))    //呼叫靜態方法

歡迎關注關東昇新浪微博@tony_關東昇。 關注智捷課堂微信公共平臺,瞭解最新技術文章、圖書、教程資訊

enter image description here

更多精品iOS、Cocos、移動設計課程請關注智捷課堂官方網站:http://www.zhijieketang.com 智捷課堂論壇網站:http://51work6.com/forum.php

相關文章