Oop 一个名为的字段的实例是什么?

Oop 一个名为的字段的实例是什么?,oop,Oop,这可能是一个奇怪的问题,但它实际上让我有些头痛 在面向对象编程中,关键概念有公认的名称。在我们的模型中,我们有带有方法和字段的类。现在,进入数据世界: 类的实例称为对象 字段的实例称为。。。什么 价值观?这个术语的值不是有点宽泛吗?我也被提供了“属性”,但是属性不也是模型的一部分而不是数据吗 (这不是纯学术性的,我实际上是在编写这些概念。) 更新:让我举个例子。我有一个类“Person”,字段为“age”。如果我创建20个人实例,那么每个这样的实例都称为一个对象。到现在为止,一直都还不错。但

这可能是一个奇怪的问题,但它实际上让我有些头痛

在面向对象编程中,关键概念有公认的名称。在我们的模型中,我们有带有方法和字段的类。现在,进入数据世界:

  • 类的实例称为对象
  • 字段的实例称为。。。什么
价值观?这个术语的值不是有点宽泛吗?我也被提供了“属性”,但是属性不也是模型的一部分而不是数据吗

(这不是纯学术性的,我实际上是在编写这些概念。)

更新:让我举个例子。我有一个类“Person”,字段为“age”。如果我创建20个人实例,那么每个这样的实例都称为一个对象。到现在为止,一直都还不错。但假设我把人“伊戈尔”设定为20岁。包含数字20的存储位置是什么?它是字段、值还是其他什么

另一个更新:在中引用了Pavel Feldman的一段话,用不同的词描述了我试图在上面描述的内容:

“我要说的是,在基于类的OOP中,字段属于类,没有值。当您查看c#或java中的反射时,情况就是这样-类有字段,字段有类型、名称等,您可以从对象中获取字段的值。您在类中声明字段一次。您有许多具有相同字段但不同值的对象。”


无法实例化字段。字段只能包含一个值。该值可以是基元/本机类型,也可以是指向对象实例的引用/指针



根据您的更新:如果对象表示真实世界的实体,那么它通常称为属性。对于“真实世界实体”,我指的是个人/人的东西,例如
产品
订单
汽车
,等等。如果对象不代表个人/人的东西,例如
列表
字符串
地图
,那么它通常被称为字段。这正是我目前所观察到的。

字段是一个字段,无论您是在类的上下文中还是在对象的上下文中谈论它

class C {
    int i;       // i is a field
}


与参数vs参数不同,“实例化”字段和“未实例化”字段在术语上没有区别。

同意BalusC。然而,我认为您要问的是如何调用实例化对象的字段。请记住,对象同时包含状态(数据)和操作(方法)。您可以将对象字段称为状态

类的实例是对象,类可能包含指向其他实例化对象(或空指针)的字段。说一个字段的实例没有任何意义,但是您可以谈论特定字段指向的对象,对于不同的实例,对象可能不同。或者你可以谈论一个字段的类型(它属于哪个类)

答案基本上不是我们没有一个类(或对象)实例的字段值的名称吗

这就像给类实例的方法返回的值命名一样


我想“state”是最好的答案,正如“BalusC”所建议的那样。

我听到过被称为“members”的字段。我用一个例子稍微更新了我的问题。我同意字段没有实例化的概念,但我仍然认为字段作为类定义的一部分和字段作为对象的存储位置之间存在差异。我最后选择了“属性”——这实际上是一位同事在我问这个问题之前提出的建议,但我不同意他的观点。我仍然不确定我是否。。。
obj = new C();
obj.i = 7;       // obj.i is a field