面向对象类型 实例存储属性 静态存储属性 实例计算属性 静态计算属性
类 支持 不支持 支持 支持
结构体 支持 支持 支持 支持
枚举 不支持 支持 支持 支持
实例存储属性 静态存储属性 实例计算属性 静态计算属性
实例计算属性 可以 可以 可以 可以
静态计算属性 不可以 可以 不可以 可以
1、实例计算属性可以访问所有的属性;
2、静态计算属性只能访问静态属性,不能访问实例属性;
一、结构体的静态属性
有这样的类设计,有一个account类,假设它有3个属性:amount(账户金额),interestRate(利率)和owner(账户名),在这个类中,amount和owner会因人而异,不同的人这些账户的内容是不同的,而所有账户的interestRate都是相同的。
amount和owner的属性与账户个体有关,成为实例属性,interestRate属性与个体无关,或者说是所有账户个体共享,这种属性称为静态属性或者类型属性
3种面向对象类型(结构体,枚举和类)都可以定义为静态属性,它们的语法格式分别如下:
struct 结构体名 {
static var(let) 存储属性 = ""
static var 计算属性值 {
get{
return
}
set()
}
}
二、枚举静态属性
enum 枚举名 {
static var(let) 存储属性 = " "
static var 计算属性:数据类型 {
get{
计算后属性值
}
set(新属性值){
}
}
}
三、类静态属性
class 类名 {
class var 计算属性名 : 属性数据类型 {
get{
return 计算后属性值
}
set(新属性值){
}
}
}