十三.类型属性和类型方法
1.通过前面的学习,已经知道Swift的类型中有5种成员:属性(存储属性和计算属性)、方法、下标、构造器和嵌套类型。而且属性和方法都可以分为两种:实例的属性/方法和类型的属性/方法
2.值类型的属性:值类型包括枚举和结构体两种。值类型的属性用static关键字关键字修饰。--不管是存储属性还是计算属性。
3.枚举可以包含类型属性。包括类型存储属性和类型计算属性。-----****注意:枚举只能包含实例的计算属性,不能包含实例存储属性。
4.结构体可以包含类型属性,包括类型存储属性和类型计算属性----结构体也可以包含实例计算属性和实例存储属性
5.类的类型属性用class修饰,类里面不允许定义类型存储属性,类只能包含类型计算属性。
6. Swift不允许在类中定义类型存储属性,有些时候程序确实需要在类中保存类型相关的状态,但Swift不允许通过类型存储属性来实现(可以通过全局变量来实现)。这个设计非常奇怪,可能是为了和Objective-C兼容的结果
7.值类型的方法:使用static修饰,属于类型本身。
8.类型方法不能直接访问实例成员,如果希望在类型方法中访问实例成员,必须先创建该类型的实例,然后通过实例调用成员。
9.类型方法可以直接访问类型成员,如果类型方法中包含了与类型属性命名相同的局部变量,此时局部变量将会隐藏类型属性,程序可以通过self强制访问类型属性。
10.类的类型方法也使用关键字class修饰。
11.类型方法可以直接方法类中的类型成员,也可以通过self明确指定访问类中的类型成员。
网友评论