【问题标题】:Terminology of Class "attribute" vs "member" vs "variable" vs "field" [closed]类“属性”与“成员”与“变量”与“字段”的术语[关闭]
【发布时间】:2012-07-06 05:12:45
【问题描述】:

在提及存储在类实例中的一段数据时,开发人员似乎经常交替使用这些术语。

每个术语之间是否有任何技术差异,或者可以互换使用它们?

【问题讨论】:

  • 一般来说,你会看到很多重叠,特别是对于经常使用多种语言或技术的程序员,他们对同一概念有冲突的术语。例如。 “功能”与“方法”。
  • 有趣的列表,但根据这里的回复,似乎没有人对使用其中一种或另一种充满热情。
  • 在 Java 中的“成员变量”、“成员字段”和“实例变量”是同义词。这些包括类的所有方法和所有字段,并与特定的类对象相关联。方法或代码块中的变量称为:“局部变量”。方法声明中的变量称为:“参数”。 “静态变量”、“类变量”是同义词,对此类的所有对象都是通用的,而不是特定实例。 “静态成员”包括:“静态变量”、“静态方法”、“静态块”和“嵌套类”。

标签: java oop attributes field terminology


【解决方案1】:

“成员”是更广泛的术语。它引用该类中的所有内容(实例方法/变量等)

“属性/变量/字段”相同,也可以使用“成员”。

【讨论】:

  • 并非所有变量都是属性。
  • @JosephElcid,你能提供一个案例吗?我可能误会了。
  • 据我了解,属性以某种方式对客户端可见,而变量可以是私有的并且只能在类中看到。
  • @ConorSherman:所有这些术语指的是与对象/类关联的一个内存位置相同的东西。我们如何称呼它们因人们的编程背景而异。
  • oop 中的属性具有可见性,而变量则没有。更多here
【解决方案2】:

根据答案的多样性,“属性”、“字段”和“变量”类的使用相对可互换,但因人而异,但有细微差别。因此,最好将它们放在一起,而不是依赖细微差别。

大家一致认为,类“成员”既包括方法,也包括数据,因此它不同于其他类。

【讨论】:

    【解决方案3】:

    成员:通常用于定义变量和方法。

    属性:属性是对象的实例变量。

    变量:原始变量和对象引用变量作为实例或局部变量。

    字段:字段标记实例变量。

    【讨论】:

    • 还有成员类和枚举
    【解决方案4】:

    属性:类中属性的抽象概念。例如,一个 Person 类可能有一个 lastName 属性。属性与字段的使用取决于属性类型的“复杂程度”。更简单的类型通常称为属性。

    成员:this 指的是绑定到对象实例的方法或变量

    变量:一个抽象概念,表示给定名称表示一个可以变化的值,并且经常可以更改

    字段:字段就像一个属性,虽然字段有时用来表示比属性更复杂的东西。

    【讨论】:

      【解决方案5】:

      我见过的一般用法:

      attribute - 几乎是标准英语词典的意思。通常用于更抽象的概念,例如 Java (bean) 属性而不是成员、变量或字段。

      member - 程序外可见的方法和字段。在 C# 中包括属性和事件。

      变量 - 通常是局部变量。有时指fields,尤其是在尝试定义fields时。

      fields - 类和实例变量;在整个类中可见的变量。

      (我自己尝试用这种词,所以如果我弄错了,请告诉我!)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-08-06
        • 2010-12-05
        • 2011-02-12
        • 2016-04-26
        • 2017-07-12
        • 2010-10-08
        • 1970-01-01
        相关资源
        最近更新 更多