oop - 字段的实例叫什么?

标签 oop

这可能是一个奇怪的问题,但它确实让我有些头疼。

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

  • 类的实例称为对象
  • 一个字段的实例叫做……什么?

一个值? 值(value) 这个词是不是有点宽泛?我也被提供了“属性”,但属性不是模型的一部分而不是数据的一部分吗?

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

更新:让我举个例子。我有一个带有字段“年龄”的“人”类。如果我创建 20 个 Person 实例,每个这样的实例都称为一个对象。到目前为止,一切都很好。但是假设我以“Igor”这个人为例,并将他的年龄设置为 20。现在包含数字 20 的存储位置是什么?它是字段、值还是其他?

另一项更新:Pavel Feldman 在 this related question 中的引述用不同的词描述我在上面试图描述的内容:

"I'd say that in class-based OOP field belongs to class and does not have a value. It is so when you look at reflection in c# or java - class has fields, field has type, name, etc. And you can get value of the field from object. You declare field once, in class. You have many objects with same fields but different values."

最佳答案

字段不能被实例化。一个字段只能包含一个值。该值可以是原始类型/ native 类型,也可以是对象实例的引用/指针。


根据您的更新:如果对象代表一个真实世界的实体,那么它通常被称为属性。对于“现实世界实体”,我指的是个人/人类,例如PersonProductOrderCar 等。如果对象不代表个人/人类,例如ListStringMap,那么更多的时候叫字段。这正是我到目前为止所观察到的。

关于oop - 字段的实例叫什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3052988/

相关文章:

电子邮件数组上的 PHP OOP 过滤器验证

c++ - 从 C++ 中的基调用潜在 child 的构造函数

c# - 在这种情况下,静态或对象哪个更好?

perl - 在 Perl 中,如何将函数作为另一个函数的参数传递?

java - 当我们将 int 参数传递给具有 float 作为一个方法的参数而另一个具有双参数的重载方法时会发生什么

javascript - 获取类中类实例的名称

java - Java接口(interface)是抽象类吗?

java - 我的 friend 说我的方法没用,有人能解释一下为什么吗?

c# - 有人想过以这种方式使用黑板模式吗?

python - 如何从Python中的不同文件夹导入类