什么概念区分静态和实例属性的名称是什么?

4

公共(public)私有(private)变量的概念被称为可见性(visibility)

我正在寻找一个简洁的词来描述静态属性(static attributes)实例属性(instance attributes)之间的区别。 作用域(scope)是否适合?

1个回答

1
我认为“所有权”或“关系”更合适,而且在不同的语言中意义可能有所不同。
例如,在Python中,这种所有权有三种类型:
- 实例属性/方法 - 属于实例(或实例拥有它) - 类方法 - 属于类(类拥有属性或方法,我们可以将类本身视为更高级别类的实例) - 静态属性/方法 - 与类逻辑上相关,在这里类名用作命名空间
在C ++中,实例属性/方法由实例拥有,静态属性逻辑上与类相关。我们只是使用类名作为额外的命名空间来引用静态属性或方法。
在php中,静态属性类似于C++,但也有late static binding,它影响静态方法与继承的工作方式。因此,这取决于使用方式 - 静态方法要么只是与类“相关”,要么是类“拥有”的(当使用后期静态绑定时)。
关于“范围”术语 - 我认为它不适合,因为它用于描述编译器/解释器如何在特定上下文中找到特定名称的含义。例如,如果您具有全局变量x和同名的本地变量在函数内部,则范围定义将使用这两个变量之一。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接