每天学一点Swift----面向对象上(五)
来源:互联网 发布:行知职校 编辑:程序博客网 时间:2024/06/05 05:29
八.计算属性
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----面向对象上(四)
下一篇: 每天学一点Swift----面向对象上(六)
- 每天学一点Swift----面向对象上(五)
- 每天学一点Swift----面向对象下(五)
- 每天学一点Swift----面向对象上(一)
- 每天学一点Swift----面向对象上(二)
- 每天学一点Swift----面向对象上(三)
- 每天学一点Swift----面向对象上(四)
- 每天学一点Swift----面向对象上(六)
- 每天学一点Swift----面向对象上(七)
- 每天学一点Swift----面向对象上(八)
- 每天学一点Swift----面向对象上(九)
- 每天学一点Swift----面向对象上(十)
- 每天学一点Swift----面向对象上(十一)
- 每天学一点Swift----面向对象上(十二)
- 每天学一点Swift----面向对象下(一)
- 每天学一点Swift----面向对象下(二)
- 每天学一点Swift----面向对象下(三)
- 每天学一点Swift----面向对象下(四)
- 每天学一点Swift----面向对象下(六)
- 一次假装不正经的开始
- php获取浏览器的名称,及版本号
- MAC下iterm2 实现clone session
- bzoj1001(网络流,最小割)狼抓兔子
- js基础
- 每天学一点Swift----面向对象上(五)
- HTML学习
- Vue---组件带参数
- 凸优化学习笔记(二)之矩阵奇异值分解
- 网站添加好友功能
- JavaScript基础[思维导图]
- Activity生命周期
- 最小的K个数
- 剑指Offer学习之面试题14 :调整数组顺序使奇数位于偶数前面