【问题标题】:What is the name of the concept which distinguishes static and instance attributes区分静态属性和实例属性的概念的名称是什么
【发布时间】:2025-11-24 02:45:01
【问题描述】:

publicprivate变量的概念称为visibility

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

【问题讨论】:

    标签: oop naming


    【解决方案1】:

    我认为“ownership”或“relationship”更合适,而且不同语言的含义可能有所不同。

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

    • 实例属性/方法 - 属于实例(或实例拥有它)
    • 类方法——属于类(类拥有属性或方法,这里我们可以把类本身看成更高层次类的实例)
    • 静态属性/方法——逻辑上与类相关,这里用类名作为命名空间

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

    在 php 中静态属性类似于 C++,但也有 late static binding 影响静态方法如何与继承一起工作。 所以这取决于用法 - 静态方法要么只是与类“相关”,要么由类“拥有”(当使用后期静态绑定时)。

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

    【讨论】:

      最近更新 更多