swift屬性

swift有三種屬性:1、存儲屬性 2、計算屬性 3、類型屬性


  • 存儲屬性

    //1、存儲屬性
    class Person{
    //常量不可改值,變量可以,存儲屬性初始化的時候必須給初始值
    var name:String = "張三"
    var height:Double = 1.75
    let life = 1
    
    }
    
    var person1 = Person()
    person1.name = "王二"
    person1.height = 1.81
    println("這個人的姓名是\(person1.name)")
    println(person1.height)
    println(person1.life)
    
  • 計算屬性
    //2、計算屬性
    class Square{
    var width:Double = 0
    var girth:Double{
    get{
    return width*4
    }

      //1-1、newValue是隱藏屬性
      //        set{
    //            girth = newValue / 4
    //        }
      //1-2、也可自己定義賦值
      set(newGirth){
          
         width = newGirth / 4
        }
      }
    }
    var s = Square()
    s.width = 10
    println("這個矩形的周長是\(s.girth)")
    
    var q = Square()
    q.girth = 80
    println("這個矩形的寬為\(q.width)")
    
  • 類型屬性

      //3、類型屬性
      class Circle{
      //如果不寫set方法,只寫get方法的話,那么該屬性只有g(shù)et方法
      class var PI: Double {
          return 3.14
      }
    }
    
    var circle1 = Circle.PI * 6
    println("這個圓的周長是\(circle1)")
    
  • 補(bǔ)充

    //延時加載(即何時用到何時加載)可以避免資源的浪費(fèi),當(dāng)一些屬性內(nèi)容中含有太多信息的時候考慮用
    //延時加載不能用于計算屬性,也不能用于常量屬性
    class Animal{
    
    var name:String = "dog"
    
     lazy var status:String = "這是一個延時加載的屬性"
    let life:Double = 1
    class var age:Double{
      get{
          return 20
      }
      set{
          age = newValue * 2
        }
      }
    }
    var animal1 = Animal()
    

//?注意,以下寫法會發(fā)生死循環(huán)

class Triangle{
    var area:Double {
        get{
            println("get方法被調(diào)用")
            return area
        }
        set{
            println("set方法被調(diào)用")
            area = newValue
    }
  }
}

//在一個類對象被創(chuàng)建出來的時候會自動調(diào)用init()方法

class Test {

init(){
    println("Test類創(chuàng)建被調(diào)了")
  }
}

var test = Test()
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 存儲屬性計算屬性屬性觀察器類型屬性 存儲屬性 存儲常量或變量作為實例的一部分,用于類和結(jié)構(gòu)體。 栗子 等下!?? 先...
    HunterDude閱讀 554評論 0 4
  • SwiftDay011.MySwiftimport UIKitprintln("Hello Swift!")var...
    smile麗語閱讀 4,099評論 0 6
  • swift中屬性有多種功能 存儲功能:存儲實例的常量和變量 計算功能:通過某種方式計算出來的屬性 類屬性: 與整個...
    清風(fēng)沐沐閱讀 587評論 0 0
  • ?屬性:將值與特定的類、結(jié)構(gòu)體或枚舉關(guān)聯(lián);?存儲屬性:存儲常量或變量作為實例的一部分;?計算屬性:用于計算一個值(...
    EndEvent閱讀 651評論 1 5
  • 什么是屬性? 屬性將值跟特定的類、結(jié)構(gòu)體或枚舉關(guān)聯(lián)。存儲屬性存儲常量或變量為實例的一部分,而計算屬性計算(不是存儲...
    GY1994閱讀 382評論 0 2

友情鏈接更多精彩內(nèi)容