你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> 《從零開始學Swift》學習筆記(Day 34)——靜態屬性是怎麼回事?

《從零開始學Swift》學習筆記(Day 34)——靜態屬性是怎麼回事?

編輯:IOS開發綜合
我先來設計一個類:有一個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>

)    
  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved