swift 2.0 类中的计算属性 & 只读属性
2015-10-16 17:06
337 查看
// ---- 接触到一个新的属性定义:计算属性
//------计算属性,要注意的一点就是,他只管计算,并不会保存数据。
//------UI当中的应用场景,比如,我们赋给一个UI控件一定的frame,然后,我们就可以使用这个控件的bounds和center,我们自己并没有计算,而是直接就可以拿到的,所以人家内部是封装好了的。
class Circle{
var point: (Int,Int)
var radius: Float
//计算属性
var perimeter:
Float{
get{
return
Float(2 * Float(M_PI) *
radius)
}
set{
print("哈哈")
}
}
//构造函数。
init(point: (Int,
Int), radius: Float){
self.point = point
self.radius = radius;
}
}
var circle = Circle(point: (5,
5), radius: 5.0)
//我们拿到内部的一个计算属性的值,并打印
print(circle.perimeter)
//这里感觉是给这个计算属性赋值的感觉,但是其实,我们只是走了这个计算属性内部的一个setter方法,虽然走了这个方法,但是perimeter并不会自动存储这个值。
//如果我们非要存储这个值,我们可以在内部定义一个属性var temp: Float?,然后接收这个值。在setter方法内部写一个
temp = newValue .记住计算属性中用到的newValue
只能在他的setter方法中写,你想,也只有setter方法才会传一个新值进去。
circle.perimeter =
38
//这里再次打印,验证一下,还是内部计算得出的那个结果。
print(circle.perimeter)
// 另外计算属性,需要注意的一点是,如果在计算属性的内部,我们只写了get方法,那么这个计算属性又成为了只读属性,也就是只能访问。
//------计算属性,要注意的一点就是,他只管计算,并不会保存数据。
//------UI当中的应用场景,比如,我们赋给一个UI控件一定的frame,然后,我们就可以使用这个控件的bounds和center,我们自己并没有计算,而是直接就可以拿到的,所以人家内部是封装好了的。
class Circle{
var point: (Int,Int)
var radius: Float
//计算属性
var perimeter:
Float{
get{
return
Float(2 * Float(M_PI) *
radius)
}
set{
print("哈哈")
}
}
//构造函数。
init(point: (Int,
Int), radius: Float){
self.point = point
self.radius = radius;
}
}
var circle = Circle(point: (5,
5), radius: 5.0)
//我们拿到内部的一个计算属性的值,并打印
print(circle.perimeter)
//这里感觉是给这个计算属性赋值的感觉,但是其实,我们只是走了这个计算属性内部的一个setter方法,虽然走了这个方法,但是perimeter并不会自动存储这个值。
//如果我们非要存储这个值,我们可以在内部定义一个属性var temp: Float?,然后接收这个值。在setter方法内部写一个
temp = newValue .记住计算属性中用到的newValue
只能在他的setter方法中写,你想,也只有setter方法才会传一个新值进去。
circle.perimeter =
38
//这里再次打印,验证一下,还是内部计算得出的那个结果。
print(circle.perimeter)
// 另外计算属性,需要注意的一点是,如果在计算属性的内部,我们只写了get方法,那么这个计算属性又成为了只读属性,也就是只能访问。
相关文章推荐
- swift 2.0 类的定义
- swift 2.0 ? ! 到底是什么意思
- swift 2.0 结构体
- swift教程博客
- Swift UITableView相关功能(三)设置每行显示的内容
- swift与OC混编高级教程之混编框架的创建和调用
- Swift通过类名动态创建对象的方式
- SWIFT语言的概览
- iOS与JS交互实战篇(Swift/ObjC)
- Swift UITableView相关功能(二)填充数据
- swift 2.0 枚举
- swift打印输出、变量和常量的定义和常用类型
- swift 初级 字符串,数据类型,元组等简单语法
- Swift2.1 语法指南——高级操作符
- Swift2.1 语法指南——访问控制
- swift 学习记录(二)
- swift反射──Mirror(swift 2.0)
- 通过运行时给view关联一个nameTag(含Swift2.0)
- Swift2.1 语法指南——泛型
- swift 替换反斜杠