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

公共和私有变量的概念称为可见性.

我正在寻找一个简洁的词来描述静态属性和实例属性之间的区别.范围适合吗?

最佳答案 我认为“所有权”或“关系”更合适,而且不同语言的含义也会有所不同.

例如,在Python中有三种类型的此类所有权:

>实例属性/方法 – 属于实例(或实例拥有它)
>类方法 – 属于类(类拥有属性或方法,这里我们可以将类本身视为更高级类的实例)
>静态属性/方法 – 在逻辑上与类相关,此处类名用作命名空间

在C实例中,属性/方法由实例拥有,静态属性在逻辑上与类相关.我们只使用类名作为附加名称空间来引用静态属性或方法.

在php中静态属性类似于C,但也有late static binding也影响静态方法如何使用继承.
所以它取决于用法 – 静态方法要么与类“相关”,要么由类“拥有”(当使用后期静态绑定时).

关于“范围”术语 – 我认为它不合适,因为它用于描述编译器/解释器如何在特定上下文中找到特定名称的含义.
例如,如果在函数内部具有全局变量x和具有相同名称的local,则作用域将定义将使用这两个变量中的哪一个.

点赞