存储属性
计算属性
值类型
String Array Dictionary
值的拷贝。
结构体和枚举是值类型。默认情况下,值类型属性不能被自身的实例方法修改。结构体和枚举是值类型。
引用类型
引用类型被赋值到一个常量,变量或者本身被传递到一个函数的时候它是
不会被拷贝
的。相对于拷贝,这里使用的是同一个对现存实例的引用。
实例方法
是属于特定类实例、结构体实例或者枚举实例的函数。他们为这些实例提供功能性,要么通过提供访问和修改实例属性的方法,要么通过提供与实例目的相关的功能。(更新实例属性的方法 ,为类而生存)
先说实例方法,当你给一个类写一个方法,如果该方法需要访问某个实例的成员变量时,那么就将该方法定义成实例方法。一类的实例通常有一些成员变量,其中含有该实例的状态信息。而该方法需要改变这些状态。那么该方法需要声明成实例方法。
类型方法
定义在类型本身调用的方法。。你可以通过在
func
关键字之前用static
关键字来明确一个类型方法。类同样可以使用class
关键字来允许子类重写父类对类型方法的实现。
在类型方法的函数体中,隐含的 self属性指向了类本身而不是这个类的实例。
它不需要访问某个实例的成员变量,它不需要去改变某个实例的状态。我们把该方法定义成静态方法。
实例属性
实例属性是属于特定类型实例的属性。每次你创建这个类型的新实例,它就拥有一堆属性值,与其他实例不同。
类型属性
使用
static
关键字,类型的计算类型属性,你可以使用class
关键字来允许子类重写父类的实现。
属于类型本身的属性,不是这个类型的某一个实例的属性。这个属性只有一个拷贝,无论你创建了多少个类对应的实例。这样的属性叫做类型属性。