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

43 篇文章 0 订阅
42 篇文章 0 订阅

.计算属性

  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----面向对象上(六)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值