区分静态和实例属性的概念的名称是什么
What is the name of the concept which distinguishes static and instance attributes
public和私有变量的概念称为可见性。
我正在寻找描述 静态属性 和 实例属性 之间区别的简洁词。 scope 合适吗?
我认为“ownership”或“relationship”更合适,而且不同语言的含义可能有所不同。
例如,在Python中有三种类型的所有权:
- 实例属性/方法 - 属于实例(或实例拥有它)
- Class 方法 - 属于 到 class (class 拥有 属性或方法,这里我们可以将 class 本身视为更高级别 class)
的实例
- 静态属性/方法 - 在逻辑上 与 class 相关,此处 class 名称用作 命名空间
在 C++ 中,实例属性/方法由实例拥有,静态属性在逻辑上与class相关。我们只是使用 class 名称作为附加命名空间来引用静态属性或方法。
在php中,静态属性类似于C++,但还有一个late static binding会影响静态方法如何与继承一起工作。
所以这取决于用法——静态方法要么只是“相关”到class,要么是“拥有”class(使用后期静态绑定时)。
关于“scope”这个术语——我认为它不合适,因为它用于描述编译器/解释器如何在特定的环境中找到特定名称的含义语境。
例如,如果函数内有全局变量 x
和同名的局部变量,则 scope 定义将使用这两个变量中的哪一个。
public和私有变量的概念称为可见性。
我正在寻找描述 静态属性 和 实例属性 之间区别的简洁词。 scope 合适吗?
我认为“ownership”或“relationship”更合适,而且不同语言的含义可能有所不同。
例如,在Python中有三种类型的所有权:
- 实例属性/方法 - 属于实例(或实例拥有它)
- Class 方法 - 属于 到 class (class 拥有 属性或方法,这里我们可以将 class 本身视为更高级别 class) 的实例
- 静态属性/方法 - 在逻辑上 与 class 相关,此处 class 名称用作 命名空间
在 C++ 中,实例属性/方法由实例拥有,静态属性在逻辑上与class相关。我们只是使用 class 名称作为附加命名空间来引用静态属性或方法。
在php中,静态属性类似于C++,但还有一个late static binding会影响静态方法如何与继承一起工作。 所以这取决于用法——静态方法要么只是“相关”到class,要么是“拥有”class(使用后期静态绑定时)。
关于“scope”这个术语——我认为它不合适,因为它用于描述编译器/解释器如何在特定的环境中找到特定名称的含义语境。
例如,如果函数内有全局变量 x
和同名的局部变量,则 scope 定义将使用这两个变量中的哪一个。