美文网首页
每天学一点Swift----面向对象上(五)

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

作者: 冯可乐同学 | 来源:发表于2017-05-27 22:53 被阅读6次

八.计算属性

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

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

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

      本文链接:https://www.haomeiwen.com/subject/ankcfxtx.html