码迷,mamicode.com
首页 > 编程语言 > 详细

Swift静态方法

时间:2014-08-31 21:30:41      阅读:377      评论:0      收藏:0      [点我收藏+]

标签:swift视频   swift教程   swift   ios8   

与静态属性类似,Swift中还定义了静态方法,也称为类型方法,所谓“类型”是指枚举、结构体和类。静态方法定义的方法也是与静态属性类似的,枚举和结构体的静态方法使用的关键字是static,类的静态方法使用的关键字是class。
一、结构体中静态方法
下面我们先看一个结构体静态方法的示例,代码如下:
struct Account {
    
    var owner : String = "Tony"                 //账户名	①
    static var interestRate : Double = 0.668    //利率	②
    
    static func interestBy(amount : Double) -> Double {	③


        return interestRate * amount
    }
    
    func messageWith (amount : Double) -> String {	④
        
        var interest = Account.interestBy(amount)
        return "\(self.owner) 的利息是\(interest)"
        
    }
}


//调用静态方法
println(Account.interestBy(10_000.00))	⑤


var myAccount = Account()	⑥
//调用实例方法
println(myAccount.messageWith (10_000.00))	⑦


上述代码是定义Account结构体,第①行代码声明了实例属性owner。第②行代码声明了静态属性interestRate。第③行代码是定义静态方法interestBy,静态方法与静态计算属性类似,它不能访问实例属性或实例方法。
第④行是定义实例方法messageWith,实例方法能访问实例属性和方法,也能访问静态属性和方法。在该方法中我们使用self.owner语句,其中self是一个隐藏属性,指代当前类型实例,一般情况下我们不要使用它,除非属性名与变量或常量名发生冲突。
提示 Swift的静态方法中也能使用self,这在其他面向对象的计算机语言中是不允许的。此时self表示当前数据类型,不代表枚举、结构体或类的实例。
二、枚举中静态方法
下面我们再看一个枚举静态方法的示例,代码如下:
enum Account {
    
    case 中国银行
    case 中国工商银行
    case 中国建设银行
    case 中国农业银行
    
    static var interestRate : Double = 0.668 //利率	①
    
    static func interestBy(amount : Double) -> Double {	②
        return interestRate * amount
    }
}


//调用静态方法
println(Account.interestBy(10_000.00 )) 	③


上述代码是定义Account枚举,第①行代码声明了静态属性interestRate。第②行代码是定义静态方法interestBy,静态方法与静态计算属性类似,它不能访问实例属性或实例方法。第③行代码是调用静态方法。
从示例可以看出,结构体和枚举的静态方法使用定义没有区别。
三、类中静态方法
下面我们再看一个类方法的示例,代码如下:
class Account {
    
    var owner : String = "Tony"                 //账户名


    class func interestBy(amount : Double) -> Double {	①
        return 0.8886 * amount
    }
}


//调用静态方法
println(Account.interestBy(10_000.00 ))	②


上述代码是定义Account类,第①行代码是使用关键字class定义静态方法interestBy,静态方法与静态计算属性类似,它不能访问实例属性或实例方法。第②行代码是调用静态方法。


更多内容请关注国内第一本Swift图书《Swift开发指南》
本书交流讨论网站:http://www.51work6.com/swift.php
欢迎加入Swift技术讨论群:362298485

欢迎关注智捷iOS课堂微信公共平台

bubuko.com,布布扣

Swift静态方法

标签:swift视频   swift教程   swift   ios8   

原文地址:http://blog.csdn.net/tonny_guan/article/details/38963009

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!