首页 > 程序开发 > 移动开发 > IOS >

《从零开始学Swift》学习笔记(Day 34)——静态属性是怎么回事?

2016-07-04

《从零开始学Swift》学习笔记(Day 34)——静态属性是怎么回事?

我先来设计一个类:有一个Account(银行账户)类,假设它有3个属性:amount(账户金额)、interestRate(利率)和owner(账户名)。
在这3个属性中,amount和owner会因人而异,不同的账户这些内容是不同的,而所有账户的interestRate都是相同的。
amount和owner属性与账户个体有关,称为实例属性。interestRate属性与个体无关,或者说是所有账户个体共享的,这种属性称为静态属性或类型属性。
面向对象类型(结构体、枚举和类)都可以定义静态属性,它们的语法格式分别如下所示:
<span style="font-size:14px;">struct 结构体名 {   //定义结构体, 结构体中可以定义静态存储属性和静态计算属性<br>    static var(或let) 存储属性  = "xxx"  <br>    ...<br>    static var 计算属性名: 属性数据类型 {  <br>    get {      <br>        return 计算后属性值  <br>    }<br>    set (新属性值) {  <br>        ...<br>    }<br>    }<br>}<br></span>


enum 枚举名 { //定义枚举,枚举中不可以定义实例存储属性,但可以定义静态存储属性,也可以定义静态计算属性


<span style="font-size:14px;">static var(或let)存储属性  = "xxx"   <br>    ...<br>    static var 计算属性名: 属性数据类型 {   <br>    get {  <br>        return 计算后属性值    <br>    }    <br>    set (新属性值) {<br>        ...<br>    }    <br>    }<br>}<br> <br>class 类名 {    //定义类,类中不仅可以定义实例存储属性,还可以定义静态存储属性<br>    staticvar(或let) 存储属性 = "xxx"   <br>    ...<br>    class(或static) var 计算属性名: 属性数据类型 {<br>    get {<br>        return 计算后属性值<br>    }   <br>    set (新属性值) {  <br>        ...<br>    }  <br>    }<br>}   <br>结构体静态计算属性也可以是只读的,语法如下:<br>static var 计算属性名: 属性数据类型 {<br>    return 计算后属性值<br>}<br></span>



看一个Account结构体静态属性示例:

<span style="font-size:14px;">struct Account {//定义Account结构体<br>    <br>    var amount: Double = 0.0                   //账户金额<br>    var owner: String = ""                        //账户名<br>    <br>    static var interestRate: Double = 0.0668  //定义静态存储属性interestRate利率<br> <br>    static var staticProp: Double {   //定义静态计算属性staticProp<br>        return interestRate * 1_000_000<br>    }<br>    <br>    var instanceProp: Double {    //定义实例计算属性instanceProp<br>        return Account.interestRate * amount<br>    }<br>}<br> <br>//访问静态属性<br>print(Account.staticProp)    <br> <br>var myAccount = Account()<br>//访问实例属性<br>myAccount.amount =1_000_000<br>//访问静态属性<br>print(myAccount.instanceProp<br></span>

)
相关文章
最新文章
热点推荐