diff --git a/source/chapter2/10_Properties.md b/source/chapter2/10_Properties.md index b38971cc..c5d7fe79 100644 --- a/source/chapter2/10_Properties.md +++ b/source/chapter2/10_Properties.md @@ -282,4 +282,21 @@ stepCounter.totalSteps = 896 > > 局部范围的常量或变量不会延迟计算。 -##类属性 \ No newline at end of file +##类属性 + +实例的属性属于一个特定类型实例,每次类型实例化后都拥有自己的一套属性值,实例之间的属性相互独立。 + +也可以为类型本身定义属性,不管类型有多少个实例,这些属性都只有唯一一份。这种属性就是*类属性*。 + +类属性用于定义特定类型所有实例共享的数据,比如所有实例都能用的一个常量(就像 C 语言中的静态常量),或者所有实例都能访问的一个变量(就像 C 语言中的静态变量)。 + +对于值类型(指结构体和枚举)可以定义存储型和计算型类属性,对于类(class)则只能定义计算型类属性。 + +值类型的存储型类属性可以是变量或常量,计算型类属性跟实例的计算属性一样定义成变量属性。 + +> 注意 +> +> 跟实例的存储属性不同,必须给存储型类属性指定默认值,因为类型本身无法在初始化过程中使用构造器给类属性赋值。 + +###类属性的语法 +