每天学一点Swift----面向对象上(五)

来源:互联网 发布:行知职校 编辑:程序博客网 时间:2024/06/05 05:29

.计算属性

  1. 计算属性相当于Java中通过gettersetter合成的属性。枚举、结构体和类都可以定义计算属性。----包括实例计算属性和类型计算属性。

  

  2. 计算属性的底层并不一定有对应的存储变量----因为计算属性的本质就是gettersetter方法的组合。至于gettersetter方法到底执行哪些代码,什么时候执行,则完全由程序决定。

  

  3. 定义存储属性的语法格式如下:

  [修饰符] var计算属性属性类型{

  get{

  getter方法执行体,该方法必须要有返回值

  }

  [set(形参名)

  {

  setter方法执行体,该方法一定不能有返回值

  }]

  }

  

  4. 属性类型可以是Swift语言允许的任何数据类型,包括值类型和引用类型。

  

  5. get部分可定义一段执行性代码,这段代码最终将返回该计算属性的值。至于get中执行什么样的操作,Swift并不关心,只要返回一个类型匹配的值即可。----类似于Java中的getter方法

  

  6. set中定义一段执行性代码,这段代码用于对计算属性赋值。但是在set方法是否真的进行了赋值Swift并不关心。

  

  7. Swift允许定义只读属性,因此可以省略set部分。

  

  8. 因为计算属性的setter方法总是只有一个形参,且该形参的类型与该计算属性的类型相同。因此Swift允许在定义计算属性时省略set部分的形参。如果程序省略了计算属性的set部分的形参名,Swift将为该形参提供一个隐式的形参名:newValue。因此,程序中可以在set关键字后面直接跟花括号,里面的执行体用到形参的地方全都用newValue代替。

  

  9. 只读的计算属性:只有get部分,没有set部分的计算属性被称为只读的计算属性。只读的计算属性只能返回一个值。

  

  10. 由于只读的计算属性没有set部分,因此只读的计算属性的定义部分甚至可以省略get关键字和花括号。举个栗子:

  class User

  {

  var first:String = "";

  var last:String = ""

  var fullName : String{

  return first + "-" + last

  }

  init(first:String, last:String)

  {

  self.first = first

  self.last = last

  }

  }


上一篇:每天学一点Swift----面向对象上(四)

下一篇: 每天学一点Swift----面向对象上(六)