一、存储属性:
1、属性观察器 2、lazy
二、计算属性:
1、必须以var声明
2、newvalue
3、只读属性
三、全局与本地变量:
四、类属性
五、属性的含义:
1、每次属性设置了一个值后都会被调用,不管这个值是否与原来的值一样。
2、可以给继承过来的属性添加属性观察期,不管这个继承过来的属性是否是存储属性
3、willset参数默认是newvalue,didset参数默认是oldvalue
代码如下:
1、属性观察器
//类的声明
//类是一个引用类型,也就是说其实实例分配到堆中
class person{
//属性,方法,构造函数,析构函数,索引器(subscript)
var p1=20
//属性观察器 property observer
var name="tt"
{
willSet{
//在赋值前会调用willSet里面的内容
print("before")
print(newValue)//新值
print(name)
}
}
}
2、计算属性,get 、set
var p2=30
//不能只有set、只有get的时候,表示只读计算属性可以简写
//计算属性是没有属性观察者
var age:int
{
get{return 100}
set {}
}
3、存储属性
//修饰为静态,可以用class和static
//存储属性,只能用static,计算属性两个关键字都可以,方法也是两个关键字都可以
//区别:class修饰的表示子类是可以重写这些静态成员
class Image
{
static var name="my"
//class var name2="aaa"//存储属性不能用class修饰
static var Age:Int
{
get{return 100}
set{}
}
}
static func someMethod()
{
//静态方法中得self不是指的类的是咧,而是指类本身
self.Age=11
}